Well it all seems so simple and yet I can’t find the answer to my problem.
Let’s say I have 2 tables TableA and TableB that can hold a single reference to a 3rd table:
TableA TableB TableC
ID ID ID
TableC_ID TableC_ID RandomDataC
RandomDataA RandomDataB
Each are represented by the following classes:
public Class ClassA{
public virtual int Id{get;set;}
public virtual ClassC ObjAC{get;set;}
...
}
public Class ClassB{
public virtual int Id{get;set;}
public virtual ClassC ObjBC{get;set;}
...
}
public Class ClassC{
public virtual int Id{get;set;}
...
}
As you can see ClassA and ClassB hold a single property called ClassC.
I’ve tried the following mapping (amongst others…)
public Class ClassAMap : ClassMap<ClassA>{
public ClassAMap(){
Id(x => x.Id);
HasOne(x => x.ObjAC).Cascade.All();
...
}
}
public Class ClassBMap : ClassMap<ClassB>{
public ClassBMap(){
Id(x => x.Id);
HasOne(x => x.ObjBC).Cascade.All();
...
}
}
public Class ClassCMap : ClassMap<ClassC>{
public ClassCMap(){
Id(x => x.Id);
}
}
but the mapping is incorrect. I’ve tried ClassCMap to have a ReferencesAny but without success.
Please help…
Try this:
You may also want to make sure the correct table names are being inferred. The issue is that HasOne maps to an entity based on the primary key of the table you’re mapping from.