こんなタイプだったら
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");