我有兩個理論域對象:一一對一映射與NHibernate /使用實體作爲PK
公共類Person { 公共虛擬INT標識{獲得;私人設置; }}
public class PersonMap : ClassMap<Person>
{
public PersonMap() { Id(x => x.Id); }
}
public class DriversLicense
{
public virtual Person Person { get; set; }
public virtual string State { get; set; }
}
public class DriversLicenseMap : ClassMap<DriversLicense>
{
public DriversLicenseMap()
{
References(x => x.Person);
Map(x => x.State);
}
}
當Person對象是用作上DriversLicense的PK。我不希望Person對象具有DriversLicense的任何知識,因此這種關係在DriversLicense類中嚴格維護。每個人只有一個駕駛執照。
當設置這種方式,我發現了以下異常:
System.Xml.Schema.XmlSchemaValidationException: 在命名空間 元素「類」「甕:NHibernate的映射 - 2.2」具有 命名空間中的無效子元素'property' 'urn:nhibernate-mapping-2.2'。列表 可能的元素預期:'meta, jcs-cache,cache,id,composite-id'in namespace 'urn:nhibernate-mapping-2.2'。
將Id屬性添加到DriversLicense類型可修復問題。
有沒有方法可以將Person本身用作DriversLicense表中的主鍵,以便底層表只使用Person.Id作爲其主鍵?