Linq to sql 存储库、实体对象和域对象

Linq to sql 存储库、实体对象和域对象,linq-to-sql,domain-driven-design,repository-pattern,Linq To Sql,Domain Driven Design,Repository Pattern,在我的存储库中,我通过Linq实体查询为我的域对象赋值。然后,我有一个服务层来处理从存储库返回的这些对象 我的域对象是否应该像这样位于存储库中?还是应该将我的存储库限制为实体和数据访问,而让我的服务层为域对象进行分配 在存储库中执行所有分配似乎更容易,但现在数据库和域对象之间的区别并不明显。这里的正确做法是什么?tiaIMO如果应用程序相对简单,并且您无法想象如何删除数据访问,请继续在存储库中创建附件。但是,如果您认为该应用程序将来会变得更复杂,或者您可能希望更改数据访问权限,请将此功能排除在存

在我的存储库中,我通过Linq实体查询为我的域对象赋值。然后,我有一个服务层来处理从存储库返回的这些对象

我的域对象是否应该像这样位于存储库中?还是应该将我的存储库限制为实体和数据访问,而让我的服务层为域对象进行分配


在存储库中执行所有分配似乎更容易,但现在数据库和域对象之间的区别并不明显。这里的正确做法是什么?tia

IMO如果应用程序相对简单,并且您无法想象如何删除数据访问,请继续在存储库中创建附件。但是,如果您认为该应用程序将来会变得更复杂,或者您可能希望更改数据访问权限,请将此功能排除在存储库之外

我已经在存储库和服务层中完成了分配应用程序,还有一个我有一个单独的转换层(它不是一对一转换,对象很复杂)


关于最佳实践,有一点需要记住,那就是帮助,如果它使事情变得更加困难,那么就不要使用它。

IMO如果应用程序相对简单,并且您无法想象如何删除数据访问,那么请继续操作,并在存储库中创建附件。但是,如果您认为该应用程序将来会变得更复杂,或者您可能希望更改数据访问权限,请将此功能排除在存储库之外

我已经在存储库和服务层中完成了分配应用程序,还有一个我有一个单独的转换层(它不是一对一转换,对象很复杂)


关于最佳实践,有一点需要记住,那就是帮助,如果它使事情变得更困难,那么就不要使用它。

我过去不喜欢它。但现在通常不会回头看。基本上,如果您需要更改为结构不同的外部数据源,您可以在实现存储库代码的同时设置一个新的映射,并完成它

它是关于数据映射的。检查此链接:


同时检查此相关问题:。我使用了一个类似的映射器,但它在IQueryable级别上运行,这使得在映射后处理域对象时能够做一些非常有趣的事情。

我以前不喜欢它。但现在通常不会回头看。基本上,如果您需要更改为结构不同的外部数据源,您可以在实现存储库代码的同时设置一个新的映射,并完成它

它是关于数据映射的。检查此链接:

同时检查此相关问题:。我使用了一个类似的映射器,但是它在IQueryable级别上运行,这使得在映射后处理域对象时能够做一些非常有趣的事情