我的映射有一个奇怪的问题。
我有一个类可以调用它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
.