4

こんなタイプだったら

public class SomeType
{
    public string Text { get; set; }
    // Other properties that are not mapped...
}

文字列型のマップされたプロパティが 1 つしかない場合、SomeType へのすべての参照を単純なテキスト列 (SomeType.Text の値) にマップして、SomeType テーブルの生成を回避するにはどうすればよいですか?

4

1 に答える 1

1

がエンティティとして定義されていない場合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");
于 2013-06-16T13:05:58.070 に答える