2014-11-09 159 views
0

我正在學習ASP MVC5和EntityFramework似乎「默默崩潰」(我知道我應該責怪)。EntityFramework返回空結果沒有錯誤

我開始從模板的新項目,並增加了一個表[人物]鏈接到我的webconfig默認連接字符串模板數據庫:

<add name="DefaultConnection" 
    connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-WorstPeople.WebUI-20141007014802.mdf;Initial 
    Catalog=aspnet-WorstPeople.WebUI-20141108014803;Integrated Security=True" providerName="System.Data.SqlClient" /> 

我加入一個新的領域類庫項目,包括存儲庫模式? (仍在學習)。我有Ninject和Moq。

我的觀點列出每個人在我的數據庫(例如:返回查看(repository.People))。如果我將Mock存儲庫綁定到我的DI,該視圖可以正常工作。但是,如果我將它綁定到我的EntityFramework上下文中,它將返回一個空列表而不是錯誤(並且我的數據庫有數據)。

問題:

  1. 不應該的EntityFramework(或某事)給我一個錯誤時,它無法連接到我的[人物]表?

  2. 是否附加.mdf文件阻止IIS正常工作開展和的EntityFramework?

  3. 隨着項目的模板MVC5創造的一部分,是有一個「數據庫」即啓動IIS,或者是它只是一個數據庫文件?我對IIS或數據庫瞭解不多。

  4. 出於好奇:是不是壞存儲相同的數據庫用戶在您的域名?我想這隻有1個數據庫,但我想知道。

編輯:

  • 我需要改變的東西與連接字符串,使其與EF和DATABSE工作,還是我只是有一個無聲的錯誤我無法找到的地方?
  • 我發現我得到同樣的空的結果,如果我修改我的類名PERSON2,這讓我想到「你怎麼發現錯誤時,有沒有辦法理解的地方在於」

    回答

    1
    1. 應該
    2. 沒有
    3. 如果是的LocalDB(因爲我可以看到),你可能有一個數據庫文件,它位於項目文件夾
    4. 我做這一切的時候。如果沒有關於安全性的特殊要求,並且它是一個普通的網站,我看不出有什麼理由不使用1分貝的域名和其他數據。
    +1

    我不認爲1是正確的。我已經部分地參加了各種教程,以實現外部目標--IOW,我沒有創建數據來支持網站/頁面,它會照常啓動,但是是空的。現在,用「錯誤」替代「微妙警告」,我同意105%。 – ChiefTwoPencils 2014-11-09 08:20:45

    0

    我發現將Connection的名稱從「DefaultConnection」更改爲「EFDbContext」(與我的派生DbContext對象相同)解決了此問題。

    我猜實體框架的工作原理是連接派生的DbContext對象與一個同樣名爲連接名稱。

    有沒有任何進一步的見解或提示,我應該考慮這個問題?

    +1

    您可以使用任何連接字符串名稱,但如果它與實體框架上下文名稱不同,則應將連接字符串鍵傳遞給上下文構造函數。 – Andrei 2014-11-11 05:15:42