我已經使用Visual Studio 2012創建了一個新的控制檯應用程序,並使用實體框架映射了我的數據庫表。現在我用做到以下幾點,當我與Web應用程序,如MVC的工作,是要創建一個表示實體和參考所有可用的實體一個新的對象:在我的控制檯應用程序內調用實體框架類
class Program
{
SEntities sd = new SEntities();
static void Main(string[] args)
{
sd.Levels.Add(new Level() { Name = "from CA" });
sd.SaveChanges();
}
}
,但這將引發以下錯誤:
An object reference is required for the non-static field, method, or property 'ConsoleApplication1.Program.sd' .....\ConsoleApplication1\Program.cs 16 17 ConsoleApplication1
我讀了一些文章,看來我需要通過打開using
塊引用我的控制檯應用程序中的實體框架類,如下所示:
class Program
{
static void Main(string[] args)
{
using (SEntities sd = new SEntities())
{
sd.Levels.Add(new Level() { Name = "from CA" });
sd.SaveChanges();
}
}
}
所以我的問題是,爲什麼我不能按照第一種方法將整個方法封裝在使用塊聲音中並不奇怪?
好的我明白了你的觀點,那麼有沒有辦法避免使用「使用」塊? –
'using'塊確保調用上下文的Dispose()方法;釋放非託管資源。在所有的現實中,你不必使用它,但最佳實踐將另有說明。另一種選擇是「try/finally」。在'finally'手動調用'Dispose()'。 –
但我無法在我的情況下引用「sd」,除非我在我的使用塊中傳遞實體類。 –