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'メソッドを使用した場合、Entity固有のものであることを期待していました。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