我正在学习ASP MVC5和EntityFramework似乎“默默崩溃”(我知道我应该受到责备)。
我从模板中启动了一个新项目,并将一个表[People]添加到链接到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。
我的视图列出了我数据库中的每个人(例如:return View(repository.People);)。如果我将Mock存储库绑定到DI,则视图可以正常工作。但是,如果我将它绑定到我的EntityFramework上下文,它将返回一个空列表而不是错误(并且我的数据库有数据)。
问题:
当EntityFramework(或其他东西)无法连接到我的[People]表时,它不应该出错吗?
附加.mdf文件是否会阻止IIS启动并且EntityFramework无法正常工作?
作为MVC5创建的项目模板的一部分,是否有一个启动IIS的“数据库”,或者它只是一个数据库文件?我对IIS或数据库知之甚少。
出于好奇:将您的域存储在与用户相同的数据库中是不是很糟糕?我正在尝试只有一个数据库,但我想知道。
编辑:
我注意到,如果我将类名修改为Person2,我会得到相同的空结果,这让我想到“如果无法理解它在哪里就会发现错误”
答案 0 :(得分:1)
答案 1 :(得分:0)
我发现将Connection的名称从“DefaultConnection”更改为“EFDbContext”,这与我派生的DbContext对象相同,解决了这个问题。
我猜测实体框架的工作方式是使用同名的连接名称连接派生的DbContext对象。
我是否应该就此问题考虑进一步的见解或提示?