gpt4 book ai didi

.net - 如何在解决方案中的所有项目之间共享 LocalDB 实例?

转载 作者:行者123 更新时间:2023-12-02 03:47:39 26 4
gpt4 key购买 nike

我有一个像这样的 VS 2012 解决方案设置:

  • 英孚模型项目
  • EF模型测试项目
  • ASP.NET MVC 4 应用程序
  • WCF数据服务项目

  • 在开发过程中,我想使用 LocalDB 作为 EF 的后备数据库。 MVC 和 WCF 项目都使用 EF 模型来访问数据库中的数据。我想在所有项目(MVC、WCF 和测试)中共享相同的 LocalDB 实例,但似乎无法正确设置 web.config。

    我还希望这个项目设置可以在开发人员机器之间移植,IE 没有绝对路径。

    测试项目创建并使用 c:\users\\.mdf 中的数据库。 MVC 和 WCF 项目希望文件驻留在 AppData 文件夹中。我一直在根据需要手动复制它,但很明显,随着应用程序更改数据,它们变得不同步。

    关于如何配置项目以使用相对路径共享相同实例的任何建议或示例?

    最佳答案

    把 minhcat_vo 的例子放在一起让我想出了一个解决方案。

    当您没有指定与 DbContext 派生类型的名称(或您设置为注释的任何内容)匹配的显式连接字符串时,我遇到的问题就发生了。项目类型之间的行为不同:

  • 在测试项目中,它使用本地数据库目录和 DbContext 的 FQDN 以及位于\\.mdf 的 MDF 文件。
  • 在 ASP.NET MVC 项目中,它尝试从\app_data\.mdf
  • 加载 mdf

    在将我的 EF 项目移至 MySQL 时,我偶然发现了该解决方案。 MySQL EF 提供程序在任何情况下都不会回退到 DefaultConnection 连接字符串(我猜除非您的 DbContext 明确选择了它)。为了让 MySQL-EF 工作,我必须输入一个与上下文匹配的连接字符串。这让我找到了我正在寻找的答案。通过对我的所有项目使用以下连接字符串,它们都共享相同的 MDF 文件/LocalDB 实例:
    <add name="ThingsContext" providerName="System.Data.SqlClient" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=Things;Integrated Security=SSPI" />

    其中 ThingsContext 是我项目的 DbContext 实例。你可以看到我的示例解决方案@ https://github.com/drdamour/SharedLocalDB

    关于.net - 如何在解决方案中的所有项目之间共享 LocalDB 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15960535/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com