Hi,
I have created a new fluent project.
I have a base class :
I have 2 classes that inherit from base class :
In mapping code :
public
MappingConfiguration<MetaEnum> GetMetaEnumMappingConfiguration()
{
MappingConfiguration<MetaEnum> configuration = GetMetaEnumClassConfiguration();
PrepareMetaEnumPropertyConfigurations(configuration);
PrepareMetaEnumAssociationConfigurations(configuration);
return
configuration;
}
public
MappingConfiguration<MetaEnum> GetMetaEnumClassConfiguration()
{
var configuration =
new
MappingConfiguration<MetaEnum>();
configuration.MapType().Inheritance(InheritanceStrategy.Vertical).ToTable(SchemaMetadata +
".MetaEnum"
);
return
configuration;
}
public
void
PrepareMetaEnumPropertyConfigurations(MappingConfiguration<MetaEnum> configuration)
{
configuration.HasProperty(x => x.Id).IsIdentity(KeyGenerator.Autoinc).HasFieldName(
"ModelMetadataBase._id"
).ToColumn(
"Id"
).IsNotNullable().HasColumnType(
"int"
);
configuration.HasProperty(x => x.Name).ToColumn(
"Name"
).HasColumnType(
"varchar"
).IsNotNullable().HasLength(50);
}
public
void
PrepareMetaEnumAssociationConfigurations(MappingConfiguration<MetaEnum> configuration)
{
configuration.HasAssociation(m => m.MetaEnumItemList).HasConstraint().ToColumn(
"MetaEnumId"
).IsDependent();
}
public
MappingConfiguration<MetaEnumItem> GetMetaEnumItemMappingConfiguration()
{
MappingConfiguration<MetaEnumItem> configuration = GetMetaEnumItemClassConfiguration();
PrepareMetaEnumItemPropertyConfigurations(configuration);
return
configuration;
}
public
MappingConfiguration<MetaEnumItem> GetMetaEnumItemClassConfiguration()
{
var configuration =
new
MappingConfiguration<MetaEnumItem>();
configuration.MapType().Inheritance(InheritanceStrategy.Default).ToTable(SchemaMetadata +
".MetaEnumItem"
);
return
configuration;
}
public
void
PrepareMetaEnumItemPropertyConfigurations(MappingConfiguration<MetaEnumItem> configuration)
{
configuration.HasProperty(x => x.Id).IsIdentity(KeyGenerator.Autoinc).HasFieldName(
"ModelMetadataBase._id"
).ToColumn(
"Id"
).IsNotNullable().HasColumnType(
"int"
);
configuration.HasProperty(x => x.MetaEnumId).ToColumn(
"MetaEnumId"
).IsNotNullable().HasColumnType(
"int"
);
configuration.HasProperty(x => x.Value).ToColumn(
"Value"
).IsNotNullable().HasColumnType(
"int"
);
}
1) Why in the method :
PrepareMetaEnumAssociationConfigurations
configuration.HasAssociation(m => m.MetaEnumItemList).HasConstraint().ToColumn(
"MetaEnumId"
).IsDependent();
I cant't write :
configuration.HasAssociation(m => m.MetaEnumItemList).HasConstraint((x,y)=>x.Id == y.MetaEnumId) .ToColumn("MetaEnumId").IsDependent();
==> Error 5 A property from the configured type does not take part in the expression.
2) I create a new odata service v2 :
When i execute the service ==> The entity type '
MetaEnumItem' does not have any key properties. Please make sure the key properties are defined for this entity type.
Kind regards