这是我的问题, 我想从我刚插入的内容中获取ID,并将其用作另一个表的外键。
Records record = new Records {
field1 = 1;
field2 = 2;
};
DataContext.Records.InsertOnSubmit(record);
DataContext.SubmitChanges(); // transaction 1
int recordID = record.ID;
tblDEMO demo = new tblDEMO {
rID = recordID
field1 = 1;
};
DataContext.tblDEMOs.InsertOnSubmit(demo);
sparxdc.SubmitChanges(); // transaction 2
我的问题是,如果我这样做,它将创建2个交易。如果第二个失败,我怎样才能回滚第一个?
答案 0 :(得分:0)
如果您在一次交易中同时提交两个提交:
using (TransactionScope scope = new TransactionScope())
{
try
{
perform first submit
perform second submit
}
finally
{
scope.Complete();
}
}
答案 1 :(得分:0)
添加任意数量的InsertOnSubmit / Delete方法调用,并在完成所有更改后调用SubmitChanges。在一个TransactionScope中手动创建Transaction。
答案 2 :(得分:0)
如果您的实体是相关的(如果数据库中存在关系),您可以这样做
var order = new Order();
Order.Customer = new Customer(); // here both order and customer represent your entities
dbContext.InsertOnSubmit();
dbContext.SubmitChanges();
你能提供更多信息吗?
答案 3 :(得分:0)
Customer customer = new Customer();
Order order = new Order();
customer.Order.Add(order);
DataContext.Customer.InsertOnSubmit(customer);