说我正在创建一个公司应用程序。其中一个实体是员工,人力资源部门将基本员工数据存储在此处。然后销售团队想要进入并且他们的操作被放置在不同的组件中。现在,即使是SalesPerson也是一名员工,所以从Employee实体继承是有道理的,但我不知道该怎么做......?
对于我所知道的所有内容,使用多个实体上下文可能是一个坏主意?我愿意接受建议...... :)
答案 0 :(得分:1)
可以这样做,是的,但不是默认的EF代码生成。
您需要使用 POCO's。
我们的POCO也是单独组装的,工作正常。
使用EF4阅读POCO。您可以使用T4模板生成类,然后将此代码复制并粘贴到不同程序集中的单独文件中(我不知道为什么T4不支持每个实体的文件生成)。
从EF项目添加对POCO程序集的引用,EF将使用基于约定的映射来使用POCO。
我不是100%确定它是否适用于拆分程序集 - 如果程序集的命名空间不同,则可能会遇到问题。 (他们会这样)。
值得一试。首先使用1个装配,使用POCO映射,确保它有效,然后拆开装配并从那里开始。
一帆风顺。 :)
答案 1 :(得分:1)
是的,您可以将POCO实体放入不同的程序集中,并且可以在这些实体之上构建继承,但仍需要单个ObjectContext和EDMX映射文件,它将覆盖所有这些实体。您不能简单地将继承模型拆分为多个映射文件。
IMO唯一的方法是在不同模块的EDMX文件中复制一些映射。因此,例如在您的情况下,HR模块将具有带有Employee映射的EDMX,而Sales模块将具有其自己的具有相同Employee映射的EDMX并继承Sales person映射。