こんなタイプだったら
public class SomeType
{
public string Text { get; set; }
// Other properties that are not mapped...
}
文字列型のマップされたプロパティが 1 つしかない場合、SomeType へのすべての参照を単純なテキスト列 (SomeType.Text の値) にマップして、SomeType テーブルの生成を回避するにはどうすればよいですか?
こんなタイプだったら
public class SomeType
{
public string Text { get; set; }
// Other properties that are not mapped...
}
文字列型のマップされたプロパティが 1 つしかない場合、SomeType へのすべての参照を単純なテキスト列 (SomeType.Text の値) にマップして、SomeType テーブルの生成を回避するにはどうすればよいですか?
がエンティティとして定義されていない場合SomeType
(つまりDbSet<SomeType>
、コンテキストに存在しない場合)、それは複合型であり、その値は複合型を使用するエンティティと同じテーブルに格納されます。したがって、次Customer
のようなエンティティがある場合:
public class Customer
{
public SomeType Foo { get; set; }
// other members
}
次に、Customers
テーブルに column がありますFoo_Text
。の個別のテーブルはSomeType
作成されません。複合型の唯一の制限はnull
、それらに値を持たせないことです。
EntityPropertyName_ComplexTypePropertyName
デフォルトの列名がニーズに合わない場合は、複合型のマッピングを指定することもできます。
modelBuilder.ComplexType<SomeType>()
.Property(st => st.Text).HasColumnName("Text");