日期:2014-05-20  浏览次数:20967 次

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();会好点。
------解决方案--------------------
探讨
是不是应该只调用一次db.SaveChanges();会好点。

------解决方案--------------------
它们是属于一个处理单元的,自然要使用事务,或者类似事务的写法.
------解决方案--------------------
http://msdn.microsoft.com/zh-cn/library/system.threading.tasks.task.aspx