当我尝试通过Entity Framework中的路径/文件名打开MDF数据库时,为什么会出现此错误?

时间:2009-11-10 15:49:18

标签: c# entity-framework connection-string

我正在将应用程序从LINQ-to-SQL迁移到实体 框架并更改了该行:

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

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

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

它适用于LINQ-to-SQL,但在Entity Framework中,上面的行给了我错误

  

初始化的格式   字符串与   以'0'开头的规范;

这是我能用德语做的最好的翻译:

  

“Das Format der   Initialisierungszeichenfolge stimmt   nicht mit derSpezifikationüberein,   die bei Index'0'开始。“

2 个答案:

答案 0 :(得分:2)

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

它们由三部分组成:

  1. 提供商连接字符串=> 这就是你提供的内容
  2. 元数据=>这是哪里 EF应该获得CSDL,MSL和 SSDL来自(即概念模型, 映射和存储模型)
  3. 提供商名称=>即对于SQL 服务器这是一般的 System.Data.SqlClient的
  4. 以下是它的样子:

    metadata = res:// /Model.csdl|res:// /Model.ssdl|res://*/Model.msl;provider=System.Data.SqlClient;provider连接string =“Data Source =。\ SQLEXPRESS; Initial Catalog = Database; Integrated Security = True; Pooling = False; MultipleActiveResultSets = True”

    希望这有帮助

    亚历

答案 1 :(得分:1)

EF连接字符串不能仅是数据库连接字符串。它们包含数据库连接字符串,但它们也有更多信息。听起来你正试图单独使用数据库连接字符串。那不行。请参阅how to build an EF connection string的此示例。