是否有任何「最佳實踐」如何處理DataContext的實體框架4?處理在DataContext中的EntityFramework 4.0
目前,我每天窗口做這樣的事情在:
public class MyWindow()
{
MyEntities() _entities;
MyWindow()
{
_entities = new MyEntities();
InitializeComponent();
}
}
,然後加載到這樣一個DataGrid:
myGrid.ItemsSource= _entities.MyTable;
這不是真正的聰明,因爲ErrorHandling是不可能的。
我寧願去一個連接-Class和做這樣的事情:
public class MyData()
{
public IQueryable<Product> GetAllProducts()
{
using(MyContext context = new MyContext())
{
return context.Products;
}
}
}
但首先,這將創建一個新的上下文實例每時間 - 是不是這個壞?
或者我應該寧可在處理我的連接級一個全局靜態的DataContext?沒有得到這個靜態變量非常重載?
public class MyData()
{
private static MyContext Context = new MyContext();
public IQueryable<Product> GetAllProducts()
{
return Context.Products;
}
}
請仔細閱讀神話#10 - http://www.albahari.com/nutshell/10linqmyths.aspx,希望這有助於。 – Flowerking 2012-02-06 14:43:44
將您的方法分組爲「工作單元」,這樣每次創建新的上下文都是合乎邏輯的 - 只要工作單元正在進行,上下文就應該存在。 – 2012-02-06 14:45:32
好的,所以在每個窗口中都有一個DataContext沒有問題,它只是將自己傳遞給我的Connection-Class(僅用於異常處理情況)? – SeToY 2012-02-06 14:48:15