使用实体框架的 Visual Studio 2010 添加

发布于 2024-10-17 01:35:55 字数 933 浏览 2 评论 0原文

我正在创建一个加载项来启动基于表单的 GUI。 AddIn 和 Gui 位于不同的项目中。 Gui 连接到数据库并使用 EF 进行 ORM。

当我从 VS 启动 Gui 项目时,它运行得很好。当我将该 Gui 发布到 vs 加载项文件夹并运行它时,它工作正常。当我从 VS 中的加载项启动 Gui 时,它加载得很好,但任何尝试访问数据库的操作都会失败。 EF 抱怨元数据文件。

异常:指定的命名 未在以下位置找到连接 配置,不打算使用 与 EntityClient 提供者一起,或不与 有效。

在 System.Data.EntityClient.EntityConnection.ChangeConnectionString()

这是 app.config 中的配置

  <connectionStrings>
    <add name="companyEntities" connectionString="metadata=res://*/;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=TESTDB;Initial Catalog=company;Persist Security Info=True;User ID=id;Password=password;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient"/>
  </connectionStrings>

我唯一能想到的是,当起始程序集不同时,“res://*/”部分映射不同,但我已尝试使用 csdl/msl/ssdl 文件的绝对路径,但没有成功。

从破坏配置的加载项启动 Gui 有什么不同?

I'm creating an AddIn that launches a Forms-based GUI. The AddIn and the Gui are in different projects. The Gui connects to a database and utilizes EF for the ORM.

When I launch the Gui project from VS, it works great. When I publish that Gui to the vs add-ins folder and run it, it works fine. When I launch the Gui from the add-in in VS, it loads up fine, but anything that tries to hit the database fails. EF complains about the metadata files.

Exception: The specified named
connection is either not found in
configuration, not intended to be used
with the EntityClient provider, or not
valid.

at System.Data.EntityClient.EntityConnection.ChangeConnectionString()

Here is the configuration in app.config

  <connectionStrings>
    <add name="companyEntities" connectionString="metadata=res://*/;provider=System.Data.SqlClient;provider connection string="Data Source=TESTDB;Initial Catalog=company;Persist Security Info=True;User ID=id;Password=password;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient"/>
  </connectionStrings>

The only thing I can think of is that the "res://*/" portion maps differently when the starting assembly is different, but I've tried using absolute paths to the csdl/msl/ssdl files without any success.

What is different about launching the Gui from an Add-In that breaks the configuration?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

毅然前行 2024-10-24 01:35:55

不要依赖您无法控制的配置文件中的connectionString。相反,当您新建上下文时,使用采用连接字符串的 ObjectContext 重载来显式传递它。

Don't rely on a connectionString in a config file which you don't control. Instead, pass it explicitly when you new up your context, using the ObjectContext overload which takes a connection string.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文