0

现在我正在制作使用 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();
        }

问题是要执行诸如删除客户之类的任务,我需要上下文。

有没有办法做到这一点而不总是需要传递上下文?

4

1 回答 1

1

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

创建数据上下文并不昂贵。依赖连接池,因此每个新上下文都没有创建新连接的开销。除非您有令人信服的理由来支持您提交的操作,否则最好不要传递上下文。

于 2013-01-15T16:45:19.297 回答