如何针对MDF文件运行SQL脚本?

gli*_*ran 6 .net mdf sql-scripts entity-framework-4 ef-model-first

我使用Entity Framework 4.0创建了一个使用模型优先方法的数据库模型.然后我使用模型生成数据库创建了一个sql脚本...我还在App_Data文件夹中创建了一个SQL Server数据库文件.我现在如何针对此MDF文件运行SQL文件?

我正在使用Visual Studio 2010.

jed*_*atu 5

我遇到了同样的问题,这对我有用.

当我选择"从模型中生成数据库..."时,我创建了一个新的MDF文件.此过程运行正常,Visual Studio生成了所需的SQL脚本.但是,我不知道如何连接到相同的MDF文件来运行脚本.

事实证明这很容易.

  1. 右键单击脚本,然后选择" 连接">"连接"

  2. 应已为本地SQLEXPRESS实例设置服务器名称和身份验证.

  3. 单击" 选项"按钮

  4. 单击" 其他连接参数"选项卡

  5. 使用以下指南粘贴到数据库文件的路径中:

    AttachDBFilename = C:\路径\至\数据库\ LocalData.mdf;数据库= LocalData;

  6. 单击" 连接"按钮

如果您仍然无法连接,可能是因为已经有一个打开的连接.检查Server Explorer,如果连接已打开,请右键单击并选择"关闭连接".

只要SQL脚本保持连接,此过程也将创建持久连接.您需要关闭脚本或选择右键单击>连接>断开连接.

可以在此问题中找到更多信息: EF4 Generate Database


gli*_*ran 1

我找到了一个解决方案,但它有点hacky。

我有 SQL Server Express (2008 R2)。因此,当从模型生成数据库时,我连接到它并让它在那里构建数据库。然后我去C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA。10_50 部分是因为版本不同,对您来说可能会有所不同。因此,在此文件夹中,有一个 .mdf 文件,其名称与数据库相同 - .mdf。还有一个 _log.ldf 文件。我将它们复制到我的项目的 App_Data 文件夹中。

这可行,但为模型中的每次更改生成新的 .mdf 数据库非常耗时。所以我在发货前这样做。

如果您找到更好的答案,请分享。