2017-01-16 106 views
1

我正在使用EntityFramework 6.1.3。我已經從現有的數據庫中生成模型。現在,當試圖查詢數據庫時,datacontext返回null。數據庫似乎是空的。實體框架不返回數據

但數據庫不是空的,因爲我可以使用LINQPad進行連接和查詢。當用谷歌搜索這個問題時,我遇到了類似的情況。在這種情況下,EF在本地服務器上生成一個空數據庫,解決方案是調整連接字符串,儘管沒有明確的細節究竟應該改變什麼。

但是,我不確定這是否屬於我的情況。

  1. 我的連接字符串指向遠程服務器。
  2. 數據庫不可能在遠程服務器上創建,因爲我們沒有授權。
  3. 數據庫沒有在我的本地機器上創建,因爲我甚至沒有安裝本地sql server。我的AppData文件夾是空的。

有什麼建議嗎? 生成的連接字符串下面

 <add name="MAST_DEV" connectionString="metadata=res://*/Models.Mast_DevModel.csdl|res://*/Models.Mast_DevModel.ssdl|res://*/Models.Mast_DevModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=xxxxxx;initial catalog=MASTER_DEV;user id=xxxxx;password=xxxxxx;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 
+1

第一步可能是:嘗試連接Sql Server Management Studio,並查看該連接字符串是否與您正在使用的連接字符串相匹配。 –

+0

是的,我可以連接。我絕對確定所有憑據和服務名稱都是正確的。我也使用相同的查詢,所以它不是enumerator的錯誤或類似的錯誤 – mirosz

回答

1

我真的不知道我在做什麼錯。我從零開始創建了簡單的項目,再次生成模型,現在它工作正常。可能的是,之前我從實體數據模型嚮導中選擇了「從數據庫中首先編碼」。而這次是'來自數據庫的EF Designer'。無論如何,感謝您的幫助。這是我的錯

+0

你的錯誤是什麼? –

0

這是我的問題的精確解(答案就是從這裏Entity Framework cant use the DbContext, model being created複製)

「我看你使用的是帶有模板(.TT)的EDMX生成的類。但是,如果您將從現有數據庫獲取信息,嚮導將創建與ObjectContext兼容的ConnectionString(元數據信息和entityframework的提供者)

問題是您使用的連接字符串是ObjectContext(數據庫優先和模型優先)。對於DbContext,您應該使用沒有元數據信息的連接字符串「