C# 如何使用entity-framewrok-4在事务中插入数据?
如何使用entity-framewrok-4在事务中插入数据 我有一个order对象,它还有其他集合,我需要在事务中插入到数据库中C# 如何使用entity-framewrok-4在事务中插入数据?,c#,entity-framework,C#,Entity Framework,如何使用entity-framewrok-4在事务中插入数据 我有一个order对象,它还有其他集合,我需要在事务中插入到数据库中 cOrder-> ->lstOrderItems -->lstDressing, lstTopping, lstspecialInstruction ->userDetails ->trasactionTblsdetails 还需要以下意见:- 1) 在数据库级别或实体框架级别维护事务是否好。 2) 什么应该是编码风格 现
cOrder->
->lstOrderItems
-->lstDressing, lstTopping, lstspecialInstruction
->userDetails
->trasactionTblsdetails
还需要以下意见:-
1) 在数据库级别或实体框架级别维护事务是否好。
2) 什么应该是编码风格
现在我是这样做的,但是我可以预测它需要很多代码,但是我想知道这只是它的工作方式或者更好的解决方案
public static void SaveOrder()
{
using (EposWebOrderEntities Ctx = new EposWebOrderEntities())
{
using (TransactionScope scope = new TransactionScope())
{
// do something...
Ctx.order.SaveChanges();
// do something...
//foreach to save the order items to databaswe
Ctx.orderitems.SaveChanges();
// do something...
//foreach to save in dressing tbl
Ctx.dressing.SaveChanges();
//foreach to save in topping tbl
Ctx.topping.SaveChanges();
//foreach to save in dressing tbl
Ctx.dressing.SaveChanges();
//foreach to save in spinst tbl
Ctx.dressing.SaveChanges();
scope.Complete();
success = true;
}
}
}
这样使用它。在大多数情况下都足够了
public static void SaveOrder()
{
using (EposWebOrderEntities Ctx = new EposWebOrderEntities())
{
Ctx.Entry<Order>(order).State = EntityState.Added;
Ctx.Entry<Dressing>(dressing).State = EntityState.Added;
Ctx.SaveChanges();
}
}
publicstaticvoidsaveorder()
{
使用(EposWebOrderEntities Ctx=new EposWebOrderEntities())
{
Ctx.Entry(order).State=EntityState.Added;
Ctx.Entry(敷料).State=EntityState.Added;
Ctx.SaveChanges();
}
}
在Entity Framework的所有版本中,每当您在数据库上执行SaveChanges()以插入、更新或删除>,框架都会将该操作包装到事务中。此事务只持续>足够长的时间来执行操作,然后完成。当您执行另一个这样的>操作时,将启动一个新事务
表没有SaveChanges方法。我也不清楚你在问什么。有什么具体问题吗?虽然这是真的,但它不会将任何其他内容包装在一个tran中,例如reads或多个SaveChanges调用。不太一般。对于中的集合,不需要使用for each读取每个对象并将其推送到数据库。它将起作用。。