首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >扩展核心Edmx,在EF4中扩展多个Edmx

扩展核心Edmx,在EF4中扩展多个Edmx
EN

Stack Overflow用户
提问于 2010-12-15 06:59:52
回答 1查看 642关注 0票数 3

我们有一个包含约300个实体的EF4 EDMX,这些实体在我们的核心产品套件中使用(从数据库导入的实体)。

当我们获得新客户时,他们往往希望存储额外的信息,并让我们开发在我们的业务域之外的、完全自定义的自定义流程。例如,我们与一家安全公司签订了一份合同,他们希望存储有关其安全级别的信息,并拥有在这些级别上运行的进程。

在每种情况下,我们都需要向现有实体添加自定义表和/或添加自定义字段。我们有一个很好的方法来做到这一点,在以前的技术中,核心类库不会与自定义表格等一起被丢弃。我们只是从自定义类库中的核心实体(相当于EF中的EntityObject )继承,并根据需要添加定制。

同样,我们也不想将这些自定义的表和属性添加到我们的核心EDMX中。我们希望从本质上“继承”核心EDMX,在一个单独的类库中创建一个新的自定义EDMX,我们可以在其中添加自定义。继承将允许我们在Core EDMX中做任何我们能做的事情,再加上更多。

我们使用t4模板来生成基于这篇博客文章的存储库(我们没有使用模型优先的方法):

http://geekswithblogs.net/danemorgridge/archive/2010/06/28/entity-framework-repository-amp-unit-of-work-t4-template-on.aspx

我们能按要求扩展EDMX吗?

我们提出了一个黑客解决方案,一个核心实体上的方法扩展,它在单独的EDMX中返回一个自定义实体,如下所示:

代码语言:javascript
复制
  public static class CoreEntityExtensions
  {
    public static EntityConnection EntityConnection;

    public static CustomUserEntity CustomUserDetails(this User coreUser)
    {
      ICustomUserEntityRepository customUserRepository = new CustomUserEntityRepository(EntityConnection);
      return customUserRepository.All().SingleOrDefault(u => u.id == coreUser.id);
    }
  }

然而,由于一些显而易见的原因,这并不理想。

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2011-04-06 04:49:27

我认为对您帮助不大,但NHibernate可以很容易地做到这一点。我们有与你相同的场景,NH允许我们毫无困难地跨DLL建模。

很抱歉,这并不是一个真正的答案,而只是建议其他阅读本文的人考虑替代方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4445146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档