繁体   English   中英

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

[英]Avoid passing around a context when making LINQ SQL OO?

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

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

有没有一种方法可以始终不需要传递上下文?

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM