app.config中的两个数据库连接字符串,EF代码第一种方法导致错误

时间:2014-02-10 19:07:01

标签: c# entity-framework ef-code-first

我有代码第一个实体模型设计和工作正常如下:

 <add name="DemoEntities" connectionString="metadata=res://*/DemoDataModel.csdl|res://*/DemoDataModel.ssdl|res://*/DemoDataModel.msl;provider=System.Data.SqlClient;          
         provider connection string=&quot;data source=myservername;initial catalog=DemoDB;user id=demouser;password=abcd123;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

    <add name="SecondDemoEntities" connectionString="metadata=res://*/SecondDemoDataModel.csdl|res://*/SecondDemoDataModel.ssdl|res://*/SecondDemoDataModel.msl;provider=System.Data.SqlClient;          
         provider connection string=&quot;data source=myservername;initial catalog=SecondDemoDB;user id=demouser;password=abcd123;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

但是第一个连接字符串工作正常,我能够读取数据。但是第二个连接字符串抛出以下错误:

''建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序:SQL网络接口,错误:50 - 发生本地数据库运行时错误。无法创建自动实例。请参阅Windows应用程序事件日志以获取错误详细信息。''

请帮忙,我这样做了: 使用单独的实体文件并在构造函数中声明它们:

        public Application1Entities()
            : base("DemoEntities")
        {

        }


           public Application2Entities()
                : base("SecondDemoEntities")
            {

            }

2 个答案:

答案 0 :(得分:0)

看起来你正试图在错误的服务器上创建第二个。乍一看,它们看起来都位于同一台服务器上,但使用的服务器名称不同。

data source=myservername;

data source=secondDemoDB

如果它们托管在同一服务器上,则这两个数据源行必须相同。初始目录确定EF将从哪个服务器上绘制数据库。

答案 1 :(得分:0)

我想出了这个问题。我还必须在UI应用程序中声明相同的连接字符串。整件事都在我的DAL库中。当我在我的UI应用程序中声明相同的连接字符串时,一切运行良好..

相关问题