我可以指定用于实体框架5的LocalDB数据库文件名?(Can I specify the file

2019-06-27 02:48发布

如果我使用实体框架5的LocalDB,有没有在app.config / web.config文件中指定的数据库文件名的方法吗?

Answer 1:

在进一步的调查它看起来是很简单,但阅读文档时,并不清楚。

首先你需要有配置的实体框架的一部分

  <entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
  <parameters>
    <parameter value="v11.0" />
  </parameters>
</defaultConnectionFactory>

一旦你的,你再需要指定连接字符串。 默认情况下,连接字符串名称是您的上下文的全名。 所以在我的测试应用程序,上下文被称为“DataModel.Context”,所以我需要一个连接字符串“DataModel.Context”

  <connectionStrings>
<add name="DataModel.Context" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=database;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\database.mdf" providerName="System.Data.SqlClient" />

这然后使用该项目的数据目录中的文件“database.mdf”。



Answer 2:

正如尼克所说,你需要提供connectionString 之外 <entityFramework>标签。 因此,一个样品App.config可能是这样的:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <connectionStrings>
    <add name="CSOMLocalDataProvider.CSOMContext"
    connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=D:\path\to\Database.mdf;Integrated Security=True" providerName="System.Data.SqlClient"/>
  </connectionStrings>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="mssqllocaldb" />
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
  </entityFramework>
</configuration>

还指出, <parameter value="mssqllocaldb" />取决于你的SQL Server的版本。 检查这个答案以获取更多信息 。



文章来源: Can I specify the filename for a localdb database in entity framework 5?