【发布时间】:2011-03-21 14:02:47
【问题描述】:
我在与其基类不同的程序集中有一个子类。父级是用于 EF Code First 的 POCO 类。
当我尝试将继承类的实例添加到数据库时,我得到 InvalidOperationException: "找不到标识为 'Foo 的类型的对象映射.Bar.MyInheritedClass'"。
如果子类和基类在同一个程序集中,它就可以正常工作。
在常规 EF 中,solution seems to be 调用 ObjectContext.MetadataWorkspace.LoadFromAssembly(assembly)。但我无法弄清楚这与 Code First 有何关系。
有什么建议吗?
我正在使用 Entity Framework 4.1 RC。
【问题讨论】:
-
为什么还不能调用那个函数呢?我还没有实际检查过,但是根据一些快速搜索,您应该能够使用
dbContext.MetadatWorkspace从您的DbContext访问MetadataWorkspace。那不行吗? -
是的,您可以将 DbContext 转换为 IObjectContextAdapter 并检索它的底层 ObjectContext(请参阅:weblogs.asp.net/jgalloway/archive/2011/01/21/…)。
-
这让我可以尝试 MetadataWorkspace.LoadFromAssembly() 但它没有解决我的问题:(
标签: entity-framework code-first