将两个LINQ到SQL实体组合到一个域模型中



我开发了一个基于项目管理的MVC3应用程序。数据源部分来自现有的时间记录数据库(一个具有不可更改架构的独立应用程序),部分来自我创建的自定义项目管理数据库。这两者都位于同一台服务器上。

我创建了一个允许跨数据库查询的Linq-to-Sql类模型。我的数据模型由多个实体组成,但特别是一个具有相关属性的Project和Job实体。从域模型的角度来看,这种关系让我觉得它们应该驻留在一个域实体/类中,因为项目实际上是一个只有额外属性的作业。

我的问题是,在应用程序的哪个点/层,我应该将这两个Data实体合并为一个Domain实体?

您应该创建一个数据访问层,该层包含从(两个)数据源检索的任何/所有数据。然后,可以在项目的更高层从业务逻辑中抽象出处理合并数据的实现细节。在这种情况下,您将不再直接使用LINQ to SQL将数据检索到代码中,而是将其向下推送到DAL层中。

请参阅本文中的图表以获取更多参考。

最新更新