【问题标题】:Generate a complex database model with MS Entity Framework使用 MS Entity Framework 生成复杂的数据库模型
【发布时间】:2011-05-01 21:39:07
【问题描述】:

我有一个包含大约 160 个表的数据库(令人震惊!我以为它有大约 50 个......)。
我们使用没有 DAL 的代码库,并且我们想开始使用 MS Entity Framework(这是 .net DAL 中最新、最热门的东西,对吧?)所以我们可以使用 Linq 和其他最先进的 3 年- 以前的东西。

我尝试自动生成整个数据库模型,但使用和修改似乎是一场噩梦。例如,它有一些没有自动链接的表(可能是 DB 模型在某些方面缺乏)。

然后我尝试分别生成数据库的每个“区域”,但有两点困扰我。

首先,每个模型需要不同的连接字符串。哎呀。另外,我们的客户端使用不同的数据库,跨 30 个客户端维护 10 个连接字符串将是一场噩梦。

其次,它似乎无法链接到其他模型中的类。也许我只是没有找到它?大约有 10-15 个“模块”,大部分都连接在一起,它会破坏统一 DAL 的目的之一。例如,我们有一个“文件”表,链接到联系人、技术支持、产品、网络等。我们仍然可以使用 ID,但这有点可悲。

那么,你会怎么做?一个巨大的模型,创建和维护非常复杂;还是一些较小的,更容易更新,但在日常使用中更复杂一些?你用什么,有什么好处和坏处?

【问题讨论】:

    标签: .net database entity-framework


    【解决方案1】:

    首先,关于连接字符串,是的,每个模型都需要自己的连接字符串,因为它是一个EntityConnection,它不仅包含有关如何连接到数据库的信息,还包含有关如何连接到数据库的信息在运行时找到模型的 3 部分(即 SSDLCSDLMSL)。因此,当使用一个数据库时,即使数据库连接字符串部分是相同的,但 元数据 部分对于每个模型都是不同的,这就是为什么你需要它们都在那里。

    其次,你说得对,拥有一个包含所有实体的大型 EDM 不是一个好习惯,也不推荐。 This post 包含有关原因的详细讨论以及有关如何将数据库表分成不同模型的一些准则。

    【讨论】:

      猜你喜欢
      • 2011-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多