繁体   English   中英

实体框架LocalDB连接字符串

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM