我是 Linq to Sql 的新手。我有一个场景。我有两张桌子。MasterTable 和 DetailTable 表。我想做的是:
在 DetailTable 和 DetailTable 行的基础上插入新行我试图在一个事务中更新 Master。
这是我的代码:
DBContext context = new DBContext();
context.Connection.Open();
context.Transaction = context.Connection.BeginTransaction();
DetailTable detail = new DetailTable();
detail.Amount = 100;
var detailTable = context.GetTable<DetailTable>();
// pass in the object with insert on submit
// and then submit changes
detailTable.InsertOnSubmit(detail);
var result = (from Total in context.MasterTable
select Total).Sum();
decimal total = (decimal)result; // This total is not the latest.
// UpdateMaster.....
// ................
context.SubmitChanges();
context.Transaction.Commit();
现在,我面临的问题是我没有从 MasterTable 获得最新的 Sum。就像在插入数量为 100 的新行之后,说我应该得到 600 但我得到了 500(总和行,就好像我没有插入新行一样)。请让我知道这是否可以使用 Linq to Sql 如果是这样的话,或者我正在尝试实现一些不可能的事情。