大型实体框架分为许多EDMX。如何操作?

时间:2011-09-02 16:23:46

标签: c# entity-framework

我正在研究相当大的数据库。总共将有200-300张桌子。首先,有没有人在单个EDMX中拥有这样的数据库?根据我的经验,当你获得超过50个左右的实体时,设计师就无法使用。

在我的案例中,数据库很好地将自己分成了成员资格,系统,资产等主题领域。

这就是EDMX,一切都或多或少都可以。

这是我敢打赌每个人都有的问题..我有所有主要实体引用用户表,其中包含CreatedBy,UpdatedBy等字段。用户表位于不同的EDMX中。

对于CUD操作,我可以处理这个问题,因为我有当前的用户闲逛。但对于retreival,我经常需要显示谁创建了记录的ID,为此我需要一个连接。但是我无法加入到不同的EDMX中。

我看到了两个解决方案:

  1. 我缓存用户列表(它不可能很大)并在客户端上查找ID
  2. 我会将User表添加到我的所有模型中,并在每次请求数据时加入
  3. 我意识到我正在做的事情 - #1可能还行。但我可以看到将来我可能需要加入不同模型的实体,并想知道你们如何处理这个问题?

1 个答案:

答案 0 :(得分:2)

edmx仅定义数据库的概念模型。因此可以将用户表添加到多个edmx文件中。

选项#2似乎没问题。

您需要为在多个edmx文件中重复的表使用不同的名称以避免冲突。像SystemUser,AssetUser这样的东西实际上都指向同一个User表。

感谢。