nHibernate - One to One mapping, working only one way -
i have following setup in database:
parent : table { parentid : int, pk name : varchar } child : table { childid : int, pk parentid : int, fk, unique name : varchar } i have following set entites:
public class parent { public virtual int parentid {get;set;} public virtual string name {get;set;} public virtual child child {get;set;} } public class child { public virtual int childid {get;set;} public virtual string name {get;set;} public virtual parent parent {get;set;} } i have following classmaps (using fluent nhibernate):
public class parentmap : classmap<parent> { public parentmap() { id(x => x.parentid); map(x => x.name); hasone(x => x.child).propertyref(y => y.parent); } } public class childmap : classmap<child> { public childmap() { id(x => x.childid); map(x => x.name); references(x => x.parent).column("parentid"); } } if use session , query child , fetch parent, parent set on child:
var query = c in session.query<child>().fetch(x => x.parent) select c; // c.parent != null c.parent.child == null if use session , query parent , fetch child, child set null on parent:
var query = p in session.query<parent>().fetch(x => x.child) select p; // p.child == null anyone know doing wrong?
update: fixed typo in childmap
Comments
Post a Comment