【发布时间】:2015-01-28 20:17:26
【问题描述】:
鉴于: 代码优先技术(所有正确完成和验证)。实际上,我可以在应用程序中看到从程序添加的记录。这意味着所有 SaveChanges 和后续查询都在工作。
问题: 我想将此数据库公开给另一个程序,但无法让服务器资源管理器数据连接附加到它...
你尝试了什么?
在 VS2013 中,我打开服务器资源管理器,单击添加连接并 输入这个(在将 DataSource 更改为 SQLClient 而不是 默认数据库文件设置) : (LocalDb)\V11.0 然后点击 关于“选择或输入数据库名称”显示的表格未显示 新的数据库表。
然后我尝试输入 MYProject.MYDBContent 没有用。
然后我切换到“附加数据库文件”复选框并 找到创建的文件。 (是的!)但是当试图 打开它说它无法打开,因为它是782版,这个 服务器支持版本 706 及更早版本。后来,消息说 也“存在同名数据库,或指定文件不能 被打开,或者它位于 UNC 共享上。”
环境
我正在使用 VS2013 并使用 NUGET 下载 EF 6.0.2,但是当我 查看参考区域中的 EF 告诉我它仍然是版本 4.0....
我的系统同时安装了 SQL Server 2012 和 2014(本地数据库)。这一定是问题的根本原因。
想法?
Visual Studio 2013、EF 6.0.1 和 SQL Express 2012 在使用 Code First 时不能很好地协同工作。问题是生成了 MDF 文件,但使用服务器资源管理器数据连接进行连接的任何尝试都失败,并出现上面的 782 错误消息以及 SQL 2012 的 SSMS。即使您的系统没有安装 SQL 2014,MDF 文件版本也认为是2014文件版!
如果您删除一个 MDF 文件(如我所做的那样)尝试创建 MDF 失败(无法附加文件错误),那么只需重命名 DBContext 类名,您将获得一个新的 MDF 文件!
环境:
【问题讨论】:
-
如果您还安装了 SQL Server Express,请查找以您的连接字符串名称命名的数据库。
-
好的,可能已经找到根本原因...我的系统同时安装了 SQL 2014 和 2012。当我删除 2012 现在我的项目不会写入数据。我删除了 MDF 文件并重新运行它以尝试让它使用 2014,没有骰子。下一步将是删除 SQL 2014 重新安装 2012 ......将回发结果......这告诉我 EF 或 Visual Studio 并非普遍使用相同版本的 SQL Server 来执行创建和连接/管理的东西.
-
您是否验证过您的 Visual Studio 的 SqlServer 数据库工具是最新的?检查扩展更新。另外,你说EF显示的版本仍然是4.0?运行时版本,还是实际版本?
-
好的新更新,我创建了一个全新的 MVC 代码第一个项目,在安装 SQL Express 2012 后编译并运行它。它运行良好,创建 MDF 文件并显示应用程序添加的内容。它添加默认连接字符串如下:
-
在我删除 SQL 2012 和 2014 之前,在我重新安装 SQL 2012 Express 后,一切都使用 LocalDB,VS 现在只会使用 SQL Express.... 有没有告诉 VS 使用本地?
标签: c# entity-framework