未找到指定的命名连接或初始化字符串的格式不符合从索引0开始的规范。

时间:2011-07-29 12:23:21

标签: c# .net entity-framework

这个错误是什么意思?

  

初始化字符串的格式不符合从索引0开始的规范。

并且还收到此错误:

  

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

我正在尝试在Visual Studio中的另一个项目中使用我的EF模型上下文。让我的EF应用程序开始真正遇到麻烦。 我像这样实例化模型上下文:

ctx = new VisitoriDataModel("VisitoriDataModel");

我将从数据层项目复制的连接字符串复制到包括web.config在内的所有项目中,但仍然没有运气。

还尝试了以下内容:

//model = new VisitoriDataModel(new EntityConnection("Name=VisitoriDataModel"));
//model = new VisitoriDataModel("Name=VisitoriDataModel");
//model = new VisitoriDataModel("VisitoriDataModel");
//model = new VisitoriDataModel();

ConnectionString是这样的:

metadata=res://*/Context.VisitoriDataModel.csdl|res://*/Context.VisitoriDataModel.ssdl|res://*/Context.VisitoriDataModel.msl;provider=System.Data.SqlClient;provider connection string="data source=.\SQLEXPRESS;initial catalog=visitori;integrated security=True;multipleactiveresultsets=True;App=EntityFramework"

1 个答案:

答案 0 :(得分:6)

连接字符串需要进入正在执行的项目中。如果这是一个网站,那将是web.config。确保它已正确嵌套,而不是在<system.web>之类的其他节点内,您应该:

<configuration>
  ...
  <connectionStrings>
    <add name="VisitoriDataModel" connectionString="metadata=res://*/Context.VisitoriDataModel.csdl|res://*/Context.VisitoriDataModel.ssdl|res://*/Context.VisitoriDataModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.\SQLEXPRESS;initial catalog=visitori;integrated security=True;multipleactiveresultsets=True;App=EntityFramework&quot;"
      providerName="System.Data.EntityClient" />
  </connectionStrings>
  ...
</configuration>

另请注意,实体连接字符串中的提供者连接字符串周围的"需要转义为&quot;