私は NHibernate のユーザーであり、NHibernate を使用すると非常に細かいモデルを作成できます。アプリケーションを NHibernate から Entity Framework に移植しています。
NHibernate を使用すると、次のようなものを定義できます。
public class User : DomainEntity
{
public virtual Name Name { get; set; }
...
public virtual ICollection<LogonInformation> LogonInformations { get; set; }
}
public class Name
{
public virtual string FirstName { get; set; }
public virtual string LastName { get; set; }
}
public class LogonInformation
{
public virtual string Ip { get; set; }
public virtual DateTime Date { get; set; }
}
Name と LogonInformation は < components > としてマップされます。特殊なケースでは、NHibernate がデータベースを作成するときに、LogonInformation テーブルに UserId を作成します。EntityFramework 5 を使用してこれを行うにはどうすればよいですか? 複合型を使用してみましたが、まだ次の例外が発生するため、機能していないようです。
モデルの生成中に 1 つ以上の検証エラーが検出されました:
\tSystem.Data.Entity.Edm.EdmEntityType: : EntityType 'LogonInformation' にはキーが定義されていません。この EntityType のキーを定義します。
\tSystem.Data.Entity.Edm.EdmEntitySet: EntityType: EntitySet 'LogonInformation' は、キーが定義されていないタイプ 'LogonInformation' に基づいています。