我正在为我们的一位客户解决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="server=127.0.0.1;user id=mmm;password=mmmmmm;persistsecurityinfo=True;database=nfm"" 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)。