2

我想从具有 EF 模型的程序集中获取 csdl、ssdl 和 msl 规范。

使用反射:

//loading assembly
var assem = Assembly.LoadFile(assemblyWithEF.dll);
//get model
var model = assem.GetExportedTypes().Where(t => t.BaseType.Name == ObjectContext").First();

//get specification
var csdlStream = assem.GetManifestResourceStream("Model1.csdl");
var mslStream = assem.GetManifestResourceStream("Model1.msl");
var ssdlStream = assem.GetManifestResourceStream("Model1.ssdl");

var csdl = XElement.Load(csdlStream);
var msl = XElement.Load(mslStream);
var ssdl = XElement.Load(ssdlStream)

问题是,如何以编程方式获取获取这些规范所需的 EDMX 文件的名称。在这种情况下,“模型 1”。

4

1 回答 1

1

由于 csdl、ssdl 和 msl 文件作为资源嵌入到程序集中,因此可以使用 Assembly.GetManifestResourceNames 方法访问它们的名称

于 2013-03-29T23:17:19.003 回答