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

时间:2013-01-15 16:42:13

标签: c# .net linq

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

问题是要做一个像移除客户这样的任务,我需要上下文。

有没有办法在不需要传递上下文的情况下执行此操作?

1 个答案:

答案 0 :(得分:1)

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

创建数据上下文并不昂贵。依赖连接池,以便每个新上下文都没有创建新连接的开销。除非你有充分的理由支持你提交的操作,否则最好不要绕过上下文。