我已经使用实体框架4.0创建了一个模型优先的方法的数据库模型。然后,我使用从模型生成数据库创建了一个sql脚本...我还在App_Data文件夹中创建了一个SQL Server数据库文件。我现在如何针对这个MDF文件运行SQL文件?如何针对MDF文件运行SQL脚本?
我使用Visual Studio 2010中
我已经使用实体框架4.0创建了一个模型优先的方法的数据库模型。然后,我使用从模型生成数据库创建了一个sql脚本...我还在App_Data文件夹中创建了一个SQL Server数据库文件。我现在如何针对这个MDF文件运行SQL文件?如何针对MDF文件运行SQL脚本?
我使用Visual Studio 2010中
我找到了解决办法,但它是一个有点哈克。
我有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数据库非常耗时。所以我在发货前就这样做。
如果您发现更好的答案,请分享。
这不会是一个有用的解决方案,因为大多数开发人员习惯于在其项目文件夹中创建mdf文件,而不是在程序文件中。 – Zeeshan 2013-07-15 09:44:54
我遇到了同样的问题,这是什么对我有用。
当我选择“从模型生成数据库...”时,我创建了一个新的MDF文件。此过程正常工作,Visual Studio生成所需的SQL脚本。但是,我不知道如何连接到相同的MDF文件来运行脚本。
原来很简单。
用鼠标右键单击该脚本,选择连接>连接
服务器名称和身份验证应该已经为本地SQLEXPRESS实例设置。
点击选项按钮
的路径点击附加连接参数标签
粘贴到你的数据库文件中使用以下内容作为指南:
AttachDBFilename = C:\路径\至\数据库\ LocalData.mdf;数据库= LocalData;
点击连接按钮
如果您仍然有连接也可能是因为已经有一个打开的连接的麻烦。检查服务器资源管理器,如果连接已打开,请右键单击并选择关闭连接。
只要SQL脚本保持连接状态,该过程也会创建一个持久连接。您将希望关闭脚本或选择右键单击>连接>断开连接。
更多信息可以在这个问题上找到: EF4 Generate Database
我遇到同样的问题,使用EF5在mvc4模式第一种方法。我所做的是创建项目,添加一个新模型,在edmx图上添加实体和关联。右键单击图表并选择'从模型生成数据库'。这会生成sql文件。
现在添加一个MDF文件,比方说,Database1.mdf在Solution Explorer中的App_Data文件夹(添加>新项目>数据> SQL Server数据库)。
右键单击>在此mdf文件上打开。现在在属性窗格中您有连接字符串。照原样复制。
恢复到您生成的SQL脚本,右键单击>执行。弹出窗口要求提供连接参数。确保在服务器名称中使用正确的值(使用您的PC名称或127.0.0.1)。
现在,在选项中,单击附加连接参数标签和粘贴MDF文件的属性复制连接字符串。
这对我来说非常合适,而且非常合乎逻辑。没有必要直接使用SQL Server安装目录。
伟大的答案以上,但我不得不这样做在VS2013几个步骤,但我没有与帮助在这里解决如下。
我希望这可以帮助别人 - 编码快乐!
自从我原来的问题和答案已经过去几年了,但我后来发现LINQPad可以处理'.mdf'文件。看看这个:http://stackoverflow.com/questions/4824005/can-linqpad-connect-to-an-mdf-file – gligoran 2016-01-23 08:58:26
我可以得到一些反馈吗? – gligoran 2010-11-21 18:34:58
Upvote。这是有用的和明确的。我从下面的@jedatu的答案中得到了一个解决方案。 – Zeeshan 2013-07-15 09:55:30