到网上看了很多写法
-------------------------B------------------------------------------
直接在类里定义一个全居DataContext如:public  class Admin
    {
      DataClasses1DataContext db= new DataClasses1DataContext();
        public Model.Admin GetModel(int adminid)
        {
            Model.Admin model = null;
            IEnumerable<Model.Admin> Query = from admin in db.Admin where admin.AdminId == adminid select admin;
           foreach(Model.Admin mo in Query)
           {
               model = mo;
           }
            return model;
        }
        public int  Add(Model.Admin model)
        {
            db.Admin.InsertOnSubmit(model);
            db.SubmitChanges();
            return model.AdminId;
        }
        public void Update(Model.Admin model)
        {
            Model.Admin mo = db.Admin.Single(b => b.AdminId == model.AdminId);
            mo = model;
            db.SubmitChanges();
        }
    }
-------------------------B------------------------------------------
而有的是用Using的形式如:
http://www.cnblogs.com/love19861018/articles/1775548.html
请问这两种,那种好些?
对数据库的影响大吗?

解决方案 »

  1.   

    你这个类里实现 IDisposable 接口,然后实现Dispose方法(里面实际是对 context.Dispose 的调用)这样使用你的类的地方用 using 语句块。
      

  2.   

    写到一个类里,无非是加大代码量
    因为数据源的不同,所以封装效果不好
    就不用考虑封装linq了,他本身就是扩展方法
    Using看个人习惯问题了
    我不常用,因为用过一段时间,但也总是写Dispose
    写完了才发现,最后干脆不用了
      

  3.   

    public class Common: IDisposable
        {
           internal Common(){}
           static public CommonGetInstance(){}
           public IEnumerable<T> Cast<T>() 
            public void Activate(object obj){} 
            public void Commit(){}
           public void Rollback(){}
           public void Delete(object obj){}
           public void Add(object obj){}
           public void Update(object obj){}
           public void Dispose(){} 
        }
    }
      

  4.   

    DataContext 虽然 实现了IDisposable接口,但是 不建议使用using ,using 可能会阻断 延迟查询,
    对于不使用using 释放问题,不用担心,DataContext  的 SubmitChanges,ExecuteQuery等操作都已经
    执行了connection.Close等释放操作。
      

  5.   

    因为连接一多,如果不即时close.会对数据库访问造成影响的。
    ado.net 是这样的。
    原来DataContext 的 SubmitChanges,ExecuteQuery等操作都已经执行了connection.Close等释放操作。谢谢回答
    这正是我想要的答案。