我正在为我们的一位客户排查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" />
答案 0 :(得分:0)
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)。