多个项目的ADO.NET实体连接字符串

ado.net ado.net-entity-data-model entity-framework linq-to-entities

我正在使用多层项目,其中DataModel承载ADo.NET实体模型,DataAccess层执行验证。

但每次我都会收到这样的错误

指定的命名连接在配置中找不到,不打算与EntityClient提供程序一起使用,或者无效。

我尝试过连接字符串

<add name="SalesEntities" connectionString="metadata=res://*/SalesEntities.csdl|res://*/SalesEntities.ssdl|res://*/SalesEntities.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.;Initial Catalog=Phoenix;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />

<add name="SalesEntities" connectionString="metadata=.\SalesEntities.csdl|.\SalesEntities.ssdl|.\SalesEntities.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.;Initial Catalog=Phoenix;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />

还尝试了其他组合来引用被调用项目目录的根目录,但没有运气。

任何帮助都非常感谢。非常感谢一如既往:)。

热门答案

您必须将这些连接字符串放在每个应用程序app.config文件中。如果您有一个生成模型的DAL,然后尝试在EXE中使用DAL,则会发生同样的事情。 EXE不知道连接字符串。

我发现最容易的事情是在每个项目上放置一个app.config,然后从DAL中复制连接字符串,我最初生成了模型。然后每个都将拥有相同连接字符串的副本。



许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因