我正在使用Rob Conery的Massive进行数据库访问。我想围绕几个插入包装事务,但是第二个插入使用从第一个插入返回的身份。对我来说,如何在交易中做到这一点并不明显。一些帮助,将不胜感激。
var commandList = new List<DbCommand>
{
contactTbl.CreateInsertCommand(new
{
newContact.Name,
newContact.Contact,
newContact.Phone,
newContact.ForceChargeThreshold,
newContact.MeterReadingMethodId,
LastModifiedBy = userId,
LastModifiedDate = modifiedDate,
}),
branchContactTbl.CreateInsertCommand(new
{
newContact.BranchId,
ContactId = ????, <-- how to set Id as identity from previous command
}),
};
最佳答案
你能在存储过程中做到吗?您可以使用scope_identity或更好的output子句来获取所需的值。所有表的所有插入都在一个事务中,如果其中任何一个失败,则可以回滚。