linq数据上下文抽象
我发现自己在为每一个查询写这行:linq数据上下文抽象,linq,entity-framework,Linq,Entity Framework,我发现自己在为每一个查询写这行: using ( MyDataModel thisDataContext = new MyDataModel() ) { linq query } 有没有更好的方法来声明数据上下文 谢谢。我们实际上将数据上下文对象作为线程静态对象放在当前线程上。这样做可以避免我们必须将上下文对象传递给每个需要它的方法 我们有一个n层架构,当从客户机调用中间层时,我们只需新建一个上下文对象并将其放在线程上。然后,任何需要进行数据库调用的方法都会将上下文对象从线程中拉出来。因此
using ( MyDataModel thisDataContext = new MyDataModel() )
{
linq query
}
有没有更好的方法来声明数据上下文
谢谢。我们实际上将数据上下文对象作为线程静态对象放在当前线程上。这样做可以避免我们必须将上下文对象传递给每个需要它的方法 我们有一个n层架构,当从客户机调用中间层时,我们只需新建一个上下文对象并将其放在线程上。然后,任何需要进行数据库调用的方法都会将上下文对象从线程中拉出来。因此,在我们的中间层代码中,很少有真正创建上下文对象的地方。事实上,只有一个地方,如果我没记错的话
即使使用这种方法,我们的上下文对象也不会活那么久(这是一件好事)。您可以创建一个表示您的
DataContext的DataService
类,例如:
public class BaseDataService:IDisposable
{
protected MyDataModel thisDataContext = null;
public BaseDataService(string connection)
{
this.thisDataContext = new MyDataModel (connection);
}
public void Dispose()
{
this.thisDataContext.Connection.Close();
this.thisDataContext.Dispose();
}
}
然后创建满足您需求的方法
e、 g:
public class YourEntityDataService:BaseDataService
{
public YourEntityDataService(string connection):base(connection)
{
}
public YourEntity GetYourEntity()
{
//LINQ CODE
}
public void SaveYourEntity (YourEntity entityToSave)
{
//LINQ CODE
}
}