0
当我保存我的对象时,除了外键的字段外,全部保存好。 我的模型:保存null外键
public class Persons{
public virtual string Name { get; set; }
public virtual string Password { get; set; }
public virtual int Id { get; set; }
}
public class Notes{
public virtual int Id { get; set; }
public virtual Persons Owner { get; set; }
public virtual string Head { get; set; }
public virtual string Text { get; set; }
}
我的映射:
public class PersonsMap : ClassMap<Persons>{
public PersonsMap(){
Id(x => x.Id);
Map(x => x.Name);
Map(x => x.Password);
Table("Persons");
}
}
public class NotesMap: ClassMap<Notes>{
public NotesMap(){
Id(x => x.Id);
Map(x => x.Head);
Map(x => x.Text);
HasOne(x => x.Owner);
Table("Notes");
}
}
我的代码:
public void CreateNote(int id, Notes note){
using (var session = NHibernateHelper.OpenSession()){
using (var transaction = session.BeginTransaction()){
note.Owner = session.QueryOver<Persons>().Where(x => x.Id ==
id).SingleOrDefault(); // note.Owner = {Id = 1; Name = "Name";
// Password = "Password"}
session.Save(note);
transaction.Commit();
}
}
}
操作的结果是更迭,但:
ID为2,业主为空,头是“Some head”,文字是“Some text”
为什么所有者为空?我做错了什么?