我是一名NHibernate用戶,NHibernate允許我創建一個非常精細的模型。 我正在將應用程序從NHibernate移植到實體框架。如何映射實體框架5中的組件列表?
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; }
}
凡名稱和LogonInformation被映射爲< COMPONENTES>。 在特殊情況下,當NHibernate創建數據庫時,在LogonInformation表中創建UserId。 如何使用EntityFramework 5來做到這一點? 我已經使用複雜類型嘗試,但它似乎並不工作,因爲我仍然得到以下異常:模型生成過程中檢測到
一個或多個驗證錯誤:
\ tSystem.Data。 Entity.Edm.EdmEntityType :: EntityType 'LogonInformation'沒有定義鍵。定義此 EntityType的密鑰。
\ tSystem.Data.Entity.Edm.EdmEntitySet:的EntityType:EntitySet的 'LogonInformations' 是基於類型 'LogonInformation' 具有未定義 密鑰。
我不能只是告訴EF期間爲NHibernate的,那麼「啓動」時添加的用戶ID列?我無法更改LogonInformation類。 – cidico
@cidico:我不知道NHibernate,但在EF代碼中 - 首先,您必須設置主鍵屬性的方式是將其命名爲「Id」或添加「Key」屬性。 – ecampver
@cidico:我編輯了我的答案,檢查它,並讓我知道如果這就是你要找的;) – ecampver