値、なぜ複合型をインスタンス化することがされていること:複合型のみNULL可能特性を持つエンティティフレームワークで複合型の場合は
[ComplexType]
public class Address {
public string Address1 { get; set; }
}
public class Customer {
[Key]
public int CustomerId {get;set;}
public Address Address {get;set;}
}
具体的には、そうでない場合宣言とアドレス型の場合、nullable値ではないメンバーのNull値を取得します。Member: 'Address'。 " this questionに従って。
複合型のすべてのプロパティがnullableである限り、エンティティフレームワークでAddressのインスタンスが必要なのはなぜですか? Address1はnullableなので、なぜそれが想定され、null Address1でAddressのインスタンスを作成したかのように、テーブル(および列Address_Address1)と行のnull値を作成できないのはなぜですか?
これを達成するために適用できる属性/設定がありますか?
null演算子を使用するアドレスのメモリが割り当てられていない可能性があります。 –
これはEFの本当に悪い機能です。 Addressオブジェクトでリフレクションを使用すると、EFはテーブル作成時に作成する列を簡単に作成できます。それを動作させるためにエンティティからAddressのインスタンスを持つ必要はありません。エンティティの作成/更新時に、ComplexTypeプロパティがnullの場合、データベースのこれらのカラムをnullに設定するのは難しいでしょうか?これは、EF IMOの次のバージョンに追加される簡単な機能です。 – Ibraheem