2009-11-10 27 views
0

我从迁移LINQ到SQL应用程序实体框架,并改了行:当我尝试在实体框架中通过路径/文件名打开MDF数据库时,为什么会出现此错误?

using (var db = new MainDataContext(SystemHelpers.GetDatabaseConnectionString())) 

using (var db = new MainDataEntities(SystemHelpers.GetDatabaseConnectionString())) 

其中SystemHelpers.GetDatabaseConnectionString())文件路径.mdf文件

它工作在LINQ到SQL,但在实体框架上线给了我这个错误

与 规范与开始初始化 串冲突的格式“0” ;

这是最好的翻译,我可以从德国做的事:

“达斯格式DER Initialisierungszeichenfolge stimmt nicht麻省理工学院DER Spezifikationüberein, 模具北指数 '0' beginnt。”

+0

你可以请。发布连接字符串。 – Arthur 2009-11-10 15:52:47

回答

2

实体框架连接字符串比标准连接字符串更复杂。

它们是由三个部分组成:

  1. 提供商连接字符串=> 这是你提供什么
  2. 元数据=>这就是 的EF应该得到的CSDL, MSL和从(即概念模型, 映射和存储模型)
  3. 提供程序名称 SSDL =>即用于SQL 服务器,这通常是 System.Data.SqlClient的

这里是一个可能看起来像:

元= RES:// /Model.csdl|res:// /Model.ssdl|res://*/Model.msl;供应商= System.Data.SqlClient的;提供连接字符串= “数据源= \ SQLEXPRESS;初始目录=数据库;集成安全性= TRUE;池= FALSE; MultipleActiveResultSets =真”

希望这有助于

亚历克斯

1

EF con nection字符串不能单独作为数据库连接字符串。他们包含数据库连接字符串,但他们也有更多的信息。这听起来像你正试图单独使用数据库连接字符串。这是行不通的。请参见how to build an EF connection string的此示例。