实体框架(代码优先)和WPF

时间:2013-09-17 20:23:28

标签: wpf entity-framework ef-code-first localdb

最初,我在关于使用EF的ASP.NET MVC4教程中关注:http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application

那里一切正常,所以我试图在WPF中复制它,我无法生成localDb(MDF)文件。

我在使用控制台应用而不是ASP.NET的EF上尝试了本教程:http://msdn.microsoft.com/en-us/data/jj193542

同样,它在控制台中运行良好,但是在MainWindows.xaml.cs中尝试在WPF中执行此操作失败。

有什么想法吗?

编辑:(我正在使用VS2012和.NET 4.5)

EDIT2:是的,我收到了这个错误:

{“'在类型'MyProgram.MainWindow'上调用与指定绑定约束匹配的构造函数引发了异常。行号“3”和行位置“9”。“}

EDIT3:显然上面的例外是非常常见且无益的。我在其他地方找到的解决方案是按CTRL + ALT + E并选中每个框并单击“确定”并重新运行该应用程序。然后会出现一个有用的例外。 (我还在弄清楚这个新的是什么。)

EDIT4:嗯,我搞定了。调用Console.ReadLine()在WPF中是非法的。谁知道? (我想这很有道理。)现在我正在尝试自己的CodeFirst设计并遇到不同的错误。

3 个答案:

答案 0 :(得分:1)

检查您的用户文件夹(C:\ Users \ UserName)

当我按照示例时,在这里创建了mdf文件。

答案 1 :(得分:1)

所以答案是通过按CTRL + ALT + E并选中所有复选框来打开所有异常。

然后我得到了真正的异常:无法打开登录请求的数据库“MyDatabase”。登录失败。

此处找到了解决方案:EF 4.1 code first causes weird (login) runtime errors

我不得不删除SUO文件(并通过CTRL + ALT + E重新启用所有内容)然后我发现了另一个(新)错误,我修复了,一切都很好。

答案 2 :(得分:0)

在单独的项目中创建(不复制)EF上下文。然后可以从控制台应用程序或WPF应用程序访问它。这将把问题分开,并将引导您更快地诊断出问题。请注意,您需要在任何项目中添加EF项目appconfig中找到的连接字符串,该项目是您创建的EF项目的使用者。