依赖抽象编程:返回值,参数等尽量使用接口和基类,耦合度降低,变化时,对项目的影响最小,即业务变化对项目的影响降到最低
//控制一个request (httpappliction)对象公用一个DBContext,通过静态方法来实现
public class DbContextFactory
{
public static DbContext GetCurrentContext()
{
DbContext db = CallContext.GetData("DbContext") as DbContext;
if (db == null)
{
db = new DataModelContainer();
CallContext.SetData("DbContext", db);
}
return db;
}
}
EF缺点:内存消耗较大,开发人员无法控制sql 语句, 和非sql server 的数据库兼容性不好,对表的结构有要求(不算缺点)