我正在使用 EntityFramework POCO 适配器,并且由于 microsoft 对元数据的访问权限存在限制,因此我手动从 xml 中提取我需要的信息。唯一的问题是我想要加载 ssdl、msl、csdl 文件名,而不必直接检查 app.config 中的连接字符串节点。简而言之,我可以在 ObjectContext/EntityConnection 的哪个位置访问这些文件名?最坏的情况我需要从 EntityConnection 对象获取连接名称,然后从 app.config 加载它并解析字符串本身并自己提取文件名。(但我显然不想这样做)。谢谢
James
问问题
749 次
2 回答
0
我可以在这里想到两种使用反射的方法:
深入研究 EntityConnection。连接字符串应该在某个地方作为私有变量。
默认情况下,EDM 元数据文件作为资源嵌入到程序集中。您应该能够反映包含 EDM 的程序集并直接拉出文件。在包含 EDM 的程序集中使用 Reflector,您应该会看到嵌入的 msl、ssdl 和 csdl。
我认为选项 2 总体上更稳健。
于 2009-08-20T16:01:59.647 回答
0
你看过ObjectContext.MetadataWorkspace吗?它不是最容易使用的库,但我能够获得所需的所有信息。
Julia Lerman 在她的EF 书中有一个关于这个主题的好章节。
于 2009-08-20T16:13:14.320 回答