我的映射有一个奇怪的问题。
我有一个类可以调用它Order,它可以与自身有关系(将其视为一种链式的东西)。Order在“链”中不必有新的或旧的。
该问题与此类中不同的引用可为空的属性有关Order。该属性,我们称之为它Person,具有NotFound.Ignore()设置。
person 属性引用了一个不存在的对象。当我加载一个订单时,该引用会抛出一个 ObjectNotFoundException ( No row with the given identifier exists)。但是,由于我有NotFound.ignore,我希望该对象为空。
这是我的对象:
public virtual int PersonId { get; set; }
public virtual Person Person { get; set; }
public virtual int OldOrderId { get; set; }
public virtual Order OldOrder { get; set; }
public virtual Order NewOrder { get; set; }
这是我的映射:
Map(x => x.PersonId. "person_id").Default("0");
Reference(x => x.Person, "person_id")
.Not.Update()
.Not.Insert()
.NotFound.Ignore()
.Not.LazyLoad();
Map(x => x.OldOrderId, "oldorder_id").Default("0");
References(x => x.OldOrder , "oldorder_id")
.Not.Update()
.Not.Insert();
HasOne(x => x.NewOrder)
.PropertyRef(x => x.OldOrder)
.Cascade.SaveUpdate();
当我将.Constrained()设置添加到“HasOne”映射时,Person返回为 null(这是正确的)。但在那种情况下,没有NewOrder.