新手:如何执行MyData.edmx.sql

Bob*_*lth 4 sql-server entity-framework visual-studio

我通过创建MVC 4项目并使用设计器添加单个数据实体,在VS 2012中创建了一个简单的Entity Framework模型优先应用程序.

我第一次右键单击设计器表面并选择Generate Database,它会提示我输入数据库连接的详细信息.我告诉它在我的App_data文件夹中使用本地数据库文件.完成后,它创建了我的(空)数据库文件,它向我展示了一个闪亮的新MyData.edmx.sql文件.

好的,所以我假设我需要对我的新数据库文件执行这个sql文件.但我无法弄清楚这样做的魔力.当我右键单击sql文件并选择Execute时,它告诉我我正在使用服务器类型的数据库引擎,它要求我提供服务器名称.唯一可用的选项似乎是MyPC\SQLEXPRESS.但是当我选择并单击Connect按钮时,它会抱怨[MyData]数据库不存在(因为我告诉它使用SQL Express而不是LocalDb和我的数据库文件).

救命.如何将VS连接到我的新数据库文件?

短发

fab*_*idi 5

我在尝试执行VS 2013,EF6下的edmx.sql时遇到了类似的问题.在其他任何地方都没有提到这个解决方案,所以我会在这里为其他可能遇到错误的人添加它:"数据库mynewdatabase不存在".以下是我的解决方案:

  1. 按照步骤竞争模型中的"生成数据库".
  2. 打开文件*.edmx.sql(它应该已自动打开).右键单击文本编辑器中的任意位置,然后选择"执行".
  3. 如果这是您第一次连接到此数据库,将弹出登录提示.如果使用LocalDB,请完全按"(localdb)\ v11.0"输入服务器并使用Windows身份验证.

现在问题.如果您收到错误:"数据库mynewdatabase不存在",这里是修复:*.edmx.sql顶部附近是这样一行:

USE [mynewdatabase];
Run Code Online (Sandbox Code Playgroud)

您必须修改它以包含数据库文件名的完整路径,例如:

USE [D:\Projects\MyNewProject\MyNewProject\App_Data\mynewdatabase.mdf];
Run Code Online (Sandbox Code Playgroud)

现在重复步骤2,您应该收到数据库已成功创建的消息.

注1:需要.mdf扩展名!

注意2:每次从模型生成数据库时,必须再次执行此手动编辑,因为该过程将覆盖edmx.sql.