[英]Entity Framework LocalDB connectionstring
我发现很难理解Visual Studio中的实体框架如何处理LocalDB。
在我的项目根文件夹中,我有一个.mdf
数据库文件,我们称它为MyDatabase.mdf
我在WPF应用程序中使用MVVM模式,因此在我的Model
文件夹中,添加了一个ADO.NET实体数据模型(数据库中的代码优先)。
现在,在服务器资源管理器视图中,我总是向此MyDatabase.mdf
添加一个数据连接,从这里至少可以对数据库进行一些控制(例如执行EmptyDatabase
过程或其他操作)。
现在,最令人讨厌的事情是,每当我运行项目时,都会在Debug文件夹下以某种方式创建一个新的MyDatabase.mdf
,其中没有数据。
在app.config
有以下标记:
<connectionStrings>
<add name="DysphagiaModel"
connectionString="data source=(LocalDB)\v11.0;attachdbfilename=|DataDirectory|\DysphagiaDB.mdf;integrated security=True;connect timeout=30;MultipleActiveResultSets=True;App=EntityFramework"
providerName="System.Data.SqlClient" />
</connectionStrings>
我只是想不通为什么Entity Framework这样工作,而且我发现很难为刚接触该软件的开发人员找到任何好的文档。 我曾经使用过PHP和MySQL,这确实比这简单得多。 因此,这确实非常令人沮丧,并且我无法想象我是唯一一个在了解Visual Studio(和EF)如何工作以及底层机制如何工作方面存在这些问题的人。
那里的大多数文章和文档已经假定您了解一些技巧,并且它们对您需要了解的内容没有帮助。
无论如何,对于这个特定问题,我如何让我的项目使用项目根文件夹中的数据库?
在开发过程中,Visual Studio每次在调试/发布模式下重建应用程序时,都会创建数据库(和其他文件)的副本。 正如Adriano所说,每次您运行一个新的应用程序时,它将创建一个新的mdf文件(它将重建您的应用程序)。
如果您希望每次都不要发生这种情况,则可以更改“复制到输出”属性,然后选择(“不复制”或“如果更新则复制”)。 为此,您需要打开解决方案资源管理器,右键单击您的mdf文件,转到属性,然后更改“复制到输出目录”。
如果希望在调试模式下“插入”访问数据,则可以在SQL Server Object Explorer的bin / debug / [yourdb] .mdf上引用localdb副本,或创建新的数据连接(不建议使用最后一个) )。 但是请记住,除非您更改属性,否则每次重新启动调试都将重新开始。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.