我正在为我们的一位客户解决WPF C#应用程序的问题。

该应用程序连接到MySQL数据库。但是,连接字符串的形式为带有.ssdl和.msl文件的“元数据”

什么是元数据,ssdl和msl文件?

<add name="NFMEntity" connectionString="metadata=res://*/TrendData.csdl|res://*/TrendData.ssdl|res://*/TrendData.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;server=127.0.0.1;user id=mmm;password=mmmmmm;persistsecurityinfo=True;database=nfm&quot;" providerName="System.Data.EntityClient" />

最佳答案

EF使用带有.csdl,.ssdl和.msl的元数据部分,它们包含您通过EF描述的模型的不同层。本节不是数据库连接字符串的一部分。

Exploring how the Entity Data Model (EDM) Generates Code and Executes Queries – Entity Framework 4.0博客文章对这些层进行了高级描述:


  我们知道,Entity Framework将数据库表映射到对象。这是
  在3个不同的层中完成:
  
  逻辑层:定义了逻辑层,也称为存储层
  由存储模式定义语言(SSDL)定义
  表的结构以及它们之间的关系。
  
  概念层:概念层由概念层定义
  模式定义语言(CSDL)和已定义的.NET类。
  
  映射层:映射层由映射规范定义
  语言(MSL),并连接CSDL中的实体类型定义
  到SSDL中定义的元数据,因此名称为C-S映射。所以
  映射本质上是从.NET类到表结构的映射
  及其关系。
  
  在运行时,此.edmx分为三个不同的文件
  (.ssdl,.csdl和.msl)。

10-02 05:31