【发布时间】:2012-06-16 07:48:26
【问题描述】:
我无法在本地重新创建生产系统中的间歇性问题。似乎正在发生的事情是,在编辑子实体并保存包含集合的父级期间,由于没有明显的原因,子实体上的父级关联在数据库中被删除。有效地孤立子实体。
这是流畅的映射:
mapping.HasMany<ExpenseItem>(x => x.ExpenseItems).Cascade.AllDeleteOrphan();
实体也可以直接保存(也是聚合根),但在测试过程中并没有显示删除父关联。
在子对象中没有对父对象本身的引用,关联全部在 Nhibernate 处理的数据库中。
也不可能将相同的子实体分配给另一个父实体,因为费用项目(子实体)不能直接添加到其父实体之外。请参阅下面的代码。
public virtual ExpenseItem AddNewExpenseItem(ExpenseAnalysis analysis,
string recipientName,
string purchaseAccountReference,
string expenseDescription,
string expenseNotes,
Money value,
VATAnalysis vat)
{
Validate.IsNotNull<ExpenseAnalysis>(analysis);
Validate.IsNotNull(expenseDescription);
....
ExpenseItem newExpenseItem = new ExpenseItem(analysis,
recipientName,
purchaseAccountReference,
expenseDescription,
expenseNotes,
value,
vat,
expenseItemUniqueReference,
true,
Candidate.Assessment);
_expenseItems.Add(newExpenseItem);
....
有什么想法吗?
【问题讨论】:
-
能否添加您的模型,特别是您声明/初始化费用项的位置
标签: c# nhibernate fluent-nhibernate