簡體   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