我正在尽最大努力寻找最简单的方法来创建基本的“模型优先”实体框架示例。然而,我正在努力解决数据库的实际生成问题,特别是针对数据库运行 SQL。
Tools
- 视觉工作室2010
- SQL Server 2008 Express
Process
- 创建一个新的班级项目
- 将名为“Database1.mdf”的新服务器数据库项 (mdf) 添加到项目中
- 添加空的 ADO.net 实体模型
- 创建一个简单的实体(人员:ID、姓名)
- 生成脚本,选择由 Visual Studio 为我创建的 Database1 连接
- 右键单击脚本编辑器并选择“执行 SQL...”选项
- 登录 SQLEXPRESS
这是因为找不到数据库名称“Database 1”而失败的地方。
“问题”是 SQL 服务器尚未附加 Database1。我 100% 肯定 Visual Studio 在创建新数据库时会使用将数据库附加到 SQLExpress(步骤 2)。现在情况似乎不再是这样了(甚至 VS2010 的测试版也是如此)。有人可以证实这一点吗?或者告诉我如何实现这一点?
有没有办法可以修改 SQL 脚本以使用未附加的数据库。即一个文件。
我知道我可以使用 SQL Management Studio 或 sqlcmd 来附加数据库,但我理想情况下希望避免使用这些解决方案,因为我希望看到仅使用 Visual Studio 的最干净的方法。
理想的解决方案(按最优先的顺序)
- 让 Visual Studio 附加新创建的数据库
- 修改生成的SQL以指向文件
提前致谢。
我发现一致有效的方法(至少对于 VS 2010 和 SQL Server (2008|2008 R2) Express)是:
- 创建 ADO.NET 实体模型
- 创建 .mdf 数据库,但不向其中添加任何表
- 从服务器资源管理器 -> 修改连接 -> 高级(底行)复制连接字符串
- 在服务器资源管理器中关闭连接
- 通过“从模型生成数据库”生成SQL脚本
- 在编辑器中打开 SQL 脚本后,单击“连接”,然后转到“选项”->“其他连接参数”,并将连接字符串粘贴到此处。我还补充说“
;Database=DATABASENAME;
" 到连接字符串的末尾。
- 执行SQL
- 断开连接并重新启动 Visual Studio
- 现在,在展开 .mdf 文件的树控件后,这些表应该可以在服务器资源管理器中使用。
可能并非所有步骤都是必需的(尤其不是按照上面显示的确切顺序),因为我没有真正优化该过程 - 如果它有效,请不要修复它。 :-) 关键的一步似乎是#8,即重新启动 Visual Studio,否则服务器资源管理器将无法重新打开数据库。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)