entity framework 如何高效对多表操作
比如说验证登录后要对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