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