2014-11-09 147 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