How to create a HasMany relationship in an outdated database that does not have a foreign key and columns with different names? I know how to create a one-to-one relationship in HeaderVersion using References, but I donβt know how to create HasMany from Header 1 in * HeaderVersion. The condition for joining should be:
Header.Id1 = HeaderVersion.PId1 AND Header.Id2 = HeaderVersion.PId2

Domain:
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; } }
Map:
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"); }
source share