在制作LINQ SQL OO时避免传递上下文

本文关键字:上下文 OO LINQ SQL | 更新日期: 2023-09-27 17:53:33

现在我正在制作使用LINQ的方便类。

,

    public static bool Remove(Customer c,KezberPMDBDataContext context)
    {
        if (c != null && context != null)
        {
            KezberPMDBDataContext db = context;
            db.Customers.DeleteOnSubmit(c);
            db.SubmitChanges();
            return true;
        }
        return false;
    }

我还有其他类似的函数:

public static Customer Get(string description,
            KezberPMDBDataContext context = null)
        {
            KezberPMDBDataContext db = GetContext(context);
            return (from p in db.Customers
                    where p.CustomerDescription == description
                    select p).FirstOrDefault();
        }

问题是要执行像删除客户这样的任务,我需要上下文。

是否有一种方法可以做到这一点,而不总是需要传递上下文?

在制作LINQ SQL OO时避免传递上下文

是的,为每一个操作创建一个新的上下文。

数据上下文的创建成本并不高。它们依赖于连接池,这样每个新上下文就不会有创建新连接的开销。除非您有令人信服的理由支持您提交的操作,否则最好不要传递上下文。