我正在创建一个通用的 EF 模型浏览器,通过选择它的 DLL 来加载模型,然后使用反射来实例化 ObjectContext。
那部分正在工作 - 问题是需要 DataSpace.SSpace 和 DataSpace.CSpace 的操作失败,我试图弄清楚如何以通用方式初始化这些,所以我所有使用的运行时 EF 实用程序元数据查询函数他们会工作。
有没有办法在只有 DLL 可用时初始化此元数据信息(EDMX 不可用)。
提前感谢任何线索。
我正在创建一个通用的 EF 模型浏览器,通过选择它的 DLL 来加载模型,然后使用反射来实例化 ObjectContext。
那部分正在工作 - 问题是需要 DataSpace.SSpace 和 DataSpace.CSpace 的操作失败,我试图弄清楚如何以通用方式初始化这些,所以我所有使用的运行时 EF 实用程序元数据查询函数他们会工作。
有没有办法在只有 DLL 可用时初始化此元数据信息(EDMX 不可用)。
提前感谢任何线索。
感谢 Julie Lerman、Craig Stuntz 和 Hadi Hariri,我能够使用http://social.msdn.microsoft.com/Forums/en-US/dd7b1c41-e428-4e29-ab83中显示的语法找到解决方案-448d3f529ba4/creating-an-entity-connection-from-a-sql-connection。它可能不是最佳的,但这有效:
var workspace = new MetadataWorkspace(new string[] { "res://*/" },
new Assembly[] { AssemblyContainingYourModel });
我也尝试使用 MetadataWorkspace.LoadAssembly() 但它导致:
The space 'OSpace' has no associated collection.