【发布时间】:2009-12-18 21:40:03
【问题描述】:
我正在考虑将一个大型项目迁移到 Entity Framework 4.0,但不确定它是否可以处理我的继承场景。
我有几个从“主”项目中的对象继承的项目。这是一个示例基类:
namespace People
{
public class Person
{
public int age { get; set; }
public String firstName { get; set; }
public String lastName { get; set; }
}
}
和子类之一:
namespace People.LawEnforcement
{
public class PoliceOfficer : People.Person
{
public string badgeNumber { get; set; }
public string precinct { get; set; }
}
}
这就是项目布局的样子:
People - People.Education - People.LawEnforcement http://img51.imageshack.us/img51/7293/efdemo.png
该应用程序的一些客户将使用 People.LawEnforcement 中的类,而其他用户将使用 People.Education,而一些用户将同时使用这两者。我只运送用户需要的组件。因此,Assembles 的行为有点像插件,因为它们向核心应用程序添加了功能。
实体框架中是否有支持这种情况的方法?
基于this SO question,我认为这样的事情可能会奏效:
ctx.MetadataWorkspace.LoadFromAssembly(typeof(PoliceOfficer).Assembly);
但即使这样可行,但似乎我的 EDMX 文件需要了解所有项目。我希望每个项目都包含该项目中类的元数据,但我不确定这是否可能。
如果实体框架无法做到这一点,是否还有其他可行的解决方案(NHibernate、Active Record 等)?
【问题讨论】:
标签: c# nhibernate entity-framework castle-activerecord