MSDNのドキュメントは、このトピックについて明確です:「ComplexTypesには関連付けを含めることはできません」
複合型について読む場合、最もよく使用される例はAddressComplexTypeです。
class Person
{
public Address Address { get; set; }
}
class Address
{
public string Street { get; set; }
public string Zip { get; set; }
public string CountryId { get; set; }
}
国を協会として定義したいと思います。
class Address
{
//other properties ....
public Country Country { get; set; } //vs: string CountryId { get; set; }
}
ご覧のとおり、AddressComplexTypeで国に関連付けを追加したいと思います。残念ながら、これは不可能です。これにより、完全な例は無意味になります。これは、Personタイプ自体に国の関連付けを定義する必要があるため、Address-CT全体が役に立たなくなるためです。
EFにはプロジェクトに必要な機能の一部が欠けているが、EF 6でサポートされる可能性が高いため、現在NHibernateを使用してプロジェクトを設定しています。EFの急速な進化と最近発表されたオープンソースモデルを考慮して、 NHからEFへの移行の可能性を将来に備えて開いておいてください。NHibernate ComplexTypes( "Components")では、アソシエーションをサポートしているため、NHで使用する場合、EFへの移行は簡単にできません。
これが現在の制限であるかどうか知りたいですか?
- 今後、このような機能をサポートする予定はありますか?
- この機能をサポートしない明確な理由はありますか、それとも単に「ATMが実装されていない」のですか?