1

我用 mvc 和实体框架编写了一个程序。我的连接字符串有问题。

我的主人说您的连接字符串必须如下所示:

Server=sql2005.yourdomain.com,1430;Database=databaseName;Uid=userName;Password=password;

我的程序中的连接字符串是:

<add name="sbiEntities" connectionString="metadata=res://*/Models.modelCompany.csdl|res://*/Models.modelCompany.ssdl|res://*/Models.modelCompany.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=(LocalDB)\v11.0;attachdbfilename=|DataDirectory|\sbi.mdf;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

怎么改呢?

4

2 回答 2

1

实体框架具有特殊类型的连接字符串,其中包含 CSDL、SSDL、MSL 和您的原始连接字符串。

概念模式定义语言 (CSDL):本节描述 EDMX 文件的概念模型。

存储模式定义语言 (SSDL):本节描述 EDMX 文件的数据库模式模型。

映射规范语言(MSL):本节用于两个世界(CSDL 和 SSDL)的映射。

EF 实际上是从连接字符串中获取 CSDL、SSDL 和 MSL 文件名。

于 2013-04-01T07:51:39.347 回答
1

一个 EF 连接字符串由分号 (;) 分隔的几个部分组成。

  • 第一部分是模型元数据,它是从您的 edmx 文件自动生成的。

  • 第二部分是提供者 EF 应该用来与您的存储进行通信。

  • 第三部分是提供者连接字符串,它是您当前的连接字符串(为便于阅读而换行):

    ...提供者连接字符串=&quot;数据源=(LocalDB)\v11.0; attachdbfilename=|数据目录|\sbi.mdf; 集成安全=True;MultipleActiveResultSets=True;App=EntityFramework&quot;

    两者之间的文本&quot;是您当前的连接字符串,应该被替换。请注意保持 MultipleActiveResultSets=True,并将 App=EntityFramework 切换为反映您的应用程序的应用程序名称,以便于诊断。

于 2013-04-01T08:00:02.333 回答