使用实体框架的 Visual Studio 2010 添加
我正在创建一个加载项来启动基于表单的 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="Data Source=TESTDB;Initial Catalog=company;Persist Security Info=True;User ID=id;Password=password;MultipleActiveResultSets=True"" 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不要依赖您无法控制的配置文件中的
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 theObjectContext
overload which takes a connection string.