现在我正在制作使用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();
}
问题是要做一个像移除客户这样的任务,我需要上下文。
有没有办法在不需要传递上下文的情况下执行此操作?
答案 0 :(得分:1)
是的,为每个操作创建一个新的上下文。
创建数据上下文并不昂贵。依赖连接池,以便每个新上下文都没有创建新连接的开销。除非你有充分的理由支持你提交的操作,否则最好不要绕过上下文。