我想从具有 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 文件的名称。在本例中为“Model1”。
最佳答案
由于 csdl、ssdl 和 msl 文件作为资源嵌入到程序集中,因此可以使用 Assembly.GetManifestResourceNames Method
关于c# - 如何从具有 EF 模型的程序集中获取 csdl、ssdl 和 msl 规范,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15688416/