我们有一个使用EF的数据库第一种方法。 我们使用EntityTypeConfiguration<T>
来配置T是实体的映射。使用实体框架从PrimitivePropertyConfiguration获取正在配置的属性类型
我们经常做这样的事情Property(t => t.EntityType).HasColumnName("EntityType_ID");
我想是有返回类型的Property()
,这是PrimitivePropertyConfiguration
认为它会为我的扩展方法。像这样。
public static class EntityTypeConfigurationExtension
{
public static PrimitivePropertyConfiguration IsForeignKey(this PrimitivePropertyConfiguration propertyConfiguration)
{
Type typeOfEntity; //The problem is, how to know this type without passing it to this method?
return propertyConfiguration.HasColumnName(typeOfEntity.Name + "_ID");
}
}
的问题是,你可以在注释行看到的,我不明白的方式来获得所配置的属性的类型。我如何获得正在配置的属性类型?
我假设'propertyConfiguration.GetType()'不会给你你要找的东西? – silkfire
'GetType()'返回它被使用的对象的类型,因此它会在这种情况下返回'PrimitivePropertyConfiguration'。请参阅MSDN Object.GetType方法https://msdn.microsoft.com/nl-nl/library/system.object.gettype(v=vs.110).aspx –
是的,我知道,该类有自己的' GetType的方法,我很希望它是更多的实体特定:https://msdn.microsoft.com/en-us/library/system.data.entity.modelconfiguration.configuration.primitivepropertyconfiguration.gettype%28v=vs。 113%29.aspx?f = 255&MSPPError = -2147217396#M:System.Data.Entity.ModelConfiguration.Configuration.PrimitivePropertyConfiguration.GetType – silkfire