6
如何在傳統數據庫上創建HasMany關係,該關係沒有外鍵和列的不同名稱?我知道如何使用引用在HeaderVersion上創建一對一的關係,但不知道如何從頭1創建HasMany到* HeaderVersion。 加入條件應爲:Fluent NHibernate - HasMany on composite key
Header.Id1 = HeaderVersion.PId1 AND Header.Id2 = HeaderVersion.PId2
Model http://i41.tinypic.com/30xbfo5.png
域:
public class Header {
public virtual int Id1 { get; set; }
public virtual int Id2 { get; set; }
public virtual string Something { get; set; }
}
public class HeaderVersion {
public virtual int PId1 { get; set; }
public virtual int PId2 { get; set; }
public virtual int Version { get; set; }
public virtual string SomethingFoo { get; set; }
}
地圖:
public HeaderMap() {
Table("Header");
LazyLoad();
CompositeId().KeyProperty(x => x.Id1, "Id1")
.KeyProperty(x => x.Id2, "Id2");
Map(x => x.Something).Column("Something");
}
public HeaderVersionMap() {
Table("HeaderVersion");
LazyLoad();
CompositeId().KeyProperty(x => x.PId1, "PId1")
.KeyProperty(x => x.PId2, "PId2")
.KeyProperty(x => x.Version, "Version");
Map(x => x.SomethingFoo).Column("SomethingFoo");
}
我創建的hasMany關係,就像你說的之前(不含AsBag),但問題是,我沒有重寫GetHashCode和equals)。實施它們後,它像預期的那樣工作。謝謝。 – redman