【发布时间】:2015-08-15 00:59:15
【问题描述】:
我正在尝试使用 C# 语言生成动态 ORM 模型。因为我的工作任务,我需要这个。
我已经实现了如何在 C# 中以编程方式创建 SSDL 文件。我正在使用EntityStoreSchemaGenerator 类,它以这种方式写入数据:
var store = new EntityStoreSchemaGenerator(providerInvariantName, connectionString, "ShoppingModel");
store.GenerateStoreMetadata();
store.WriteStoreSchema(filePath);
我可以向您展示我拥有的示例 SSDL 文件:http://pastebin.com/3U4A6fY9
没关系,但是获取 CSDL 和 MSL 文件怎么样?
据我了解,需要使用 EntityModelSchemaGenerator 类从 System.Data.Entity.Design 命名空间生成 CSDL 和 MSL 文件。
有几种方法:
- WriteModelSchema(String) 将生成的概念架构定义语言 (CSDL) 写入指定文件。
- WriteModelSchema(XmlWriter) 将生成的概念架构定义语言 (CSDL) 写入 XmlWriter 对象。
- WriteStorageMapping(String) 将生成的映射规范语言 (MSL) 写入指定文件。
- WriteStorageMapping(XmlWriter) 将生成的映射规范语言 (MSL) 写入 XmlWriter 对象。
可用于生成所需文件(CSDL && MSL)。
但是我很困惑......如果EntityModelSchemaGenerator构造函数需要System.Data.Metadata.Edm.EntityContainer,如何生成它们。
据我了解,我必须使用EntityConnection 类准备一些实体容器。
但是,如果我的目标是创建 *.csdl 和 *.msl 文件,我该如何构建实体连接,这需要已经创建所有元数据文件( *.csdl、*.ssdl、*.msl )以前?
所以在创建所有元数据文件之前我不能使用EntityModelSchemaGenerator?那么创建 *.csdl 和 *.msl 文件的方法是什么(*.ssdl 文件完成)?
【问题讨论】:
标签: c# .net entity-framework orm edmx