Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将两个LINQ到SQL实体合并到一个域模型中_C#_Asp.net Mvc 3_Design Patterns_Linq To Sql - Fatal编程技术网

C# 将两个LINQ到SQL实体合并到一个域模型中

C# 将两个LINQ到SQL实体合并到一个域模型中,c#,asp.net-mvc-3,design-patterns,linq-to-sql,C#,Asp.net Mvc 3,Design Patterns,Linq To Sql,我开发了一个基于项目管理的MVC3应用程序。数据源部分来自现有的时间记录数据库(一个具有不可更改模式的独立应用程序),部分来自我创建的自定义项目管理数据库。它们都位于同一台服务器上 我创建了一个Linq到Sql类模型,它允许跨数据库查询。我的数据模型由多个实体组成,尤其是一个具有相关属性的项目和作业实体。从域模型的角度来看,这种关系使我觉得它们应该驻留在一个域实体/类中,因为项目实际上只是一个具有额外属性的作业 我的问题是,在应用程序中的哪个点/层,我应该将这两个数据实体合并到一个域实体中?您应

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

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

我的问题是,在应用程序中的哪个点/层,我应该将这两个数据实体合并到一个域实体中?

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


更多参考请参见中的图表。

谢谢Mike,我有一个数据访问层,其中包含Linq to Sql模型和一些用于验证的元类(可能不应该存在于其中)。你说得对,不过我应该把它保存在DAL里,以减轻公司使用时间记录系统时的痛苦。这样更容易维护;-)干杯