【问题标题】:SQL Server Express with attached file while using EF使用 EF 时带有附件的 SQL Server Express
【发布时间】:2012-03-03 14:34:41
【问题描述】:

如何结合实体框架使用应该位于解决方案目录(或其他地方)的 mdf 文件? 默认情况下,EF 在“C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA”中创建文件。 此外,在启动初始化服务器实例的 .net 应用程序之后,如果能够通过 Windows 对等网络访问数据库,那就太好了。

我想我必须使用类似这样的连接字符串: http://msdn.microsoft.com/en-us/library/bb264564%28v=sql.90%29.aspx,它使用 用户实例和 AttachDbFilename

这篇文章指出我可以像往常一样使用连接字符串与 EF: http://blogs.msdn.com/b/adonet/archive/2012/01/12/ef-4-3-configuration-file-settings.aspx

使用我自己的(不是默认的 EF)连接字符串时得到的结果是:“System.Data.Entity.Internal.AppConfig”的类型初始化程序引发了异常。 (配置系统初始化失败)

<configuration>
  <connectionStrings>
    <add name="SomeContext"
      providerName="System.Data.SqlClient"
      connectionString="Server=.\SQLEXPRESS;
      AttachDbFilename=C:\temp\SomeNamespace.SomeContext.mdf; 
      Integrated Security=True;
      User Instance=True" />

  </connectionStrings>
...

使用的版本:

SQL Server 速成版 R2 SP1

EF 4.3.1(代码优先)

【问题讨论】:

    标签: .net sql-server entity-framework connection-string code-first


    【解决方案1】:

    感谢这些答案,我能够使用自定义位置:

    Problem connecting to database - user instance and Entity Framework issue

    WPF and ADO.NET EF - error part II

    我的步骤是:

    • 将 EF 创建的 .mdf 和 .LDF 文件复制到我希望它们所在的位置
    • 以管理员身份启动 Microsoft SQL Server Management Studio (Express) 并使用 SSMS 删除旧数据库(已复制)
    • 使用 SSMS 将复制的 .mdf 文件附加到本地服务器
    • 重组 App.config 使 configSections 位于 connectionStrings 部分之前
    • 更改连接字符串(它不再使用已弃用的用户实例)

    我的 App.config 现在看起来像这样:

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <configSections>    
        <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.3.1.0, Culture=neutral, PublicKeyToken=u57a3c561234h089" />
      </configSections>
    
      <connectionStrings>
      <add name="SomeContext"
          providerName="System.Data.SqlClient"
          connectionString="Server=.\SQLEXPRESS; Integrated Security=True; Database=SomeNamespace.SomeContext" />
      </connectionStrings>
    
      <entityFramework>
        <defaultConnectionFactory 
        ...
    

    【讨论】:

      猜你喜欢
      • 2011-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多