比如说验证登录后要对A、B、C、D表进行更新,E、F、G做数据插入,我现在的做法是:
- C# code
if(mymember.isuser(uid)) { DBnameEntities db; db = new DBnameEntities(); var objA = db.A.Where(t => t.uid == uid).FirstOrDefault(); ... db.SaveChanges(); db = new DBnameEntities(); var objB = db.B.Where(t => t.uid == uid).FirstOrDefault(); ... db.SaveChanges(); db = new DBnameEntities(); var objC = db.C.Where(t => t.uid == uid).FirstOrDefault(); ... db.SaveChanges(); db = new DBnameEntities(); var objD = db.D.Where(t => t.uid == uid).FirstOrDefault(); ... db.SaveChanges(); } ......... 数据插入也差不多做法,这里省
因为objA、objB、objC、objD的获取分别是封装到4个类中的,所以才有4个new DBnameEntities()
(这4个类分别负责ABCD表的增删改查工作),但现在是我登录时间很长,要将4个表更新,3个表做插入
不知大家是怎样解决的?
------解决方案--------------------
是不是应该只调用一次db.SaveChanges();会好点。
------解决方案--------------------
------解决方案--------------------
它们是属于一个处理单元的,自然要使用事务,或者类似事务的写法.
------解决方案--------------------
http://msdn.microsoft.com/zh-cn/library/system.threading.tasks.task.aspx