使用 LINQ to SQL 时,有哪些选项可用于在层之间传递对象?

发布于 2024-09-12 03:48:24 字数 309 浏览 4 评论 0原文

在考虑传统的分层应用程序设计时,我经常考虑 3 层:

  • 最底层,实际与数据库通信(我们称之为“数据访问层”)。它将对象(以某种形式)返回到下一层。
  • 最底层之上的层(中间层,我将其称为“数据层”)从数据访问层获取对象并将域对象返回到业务层。
  • 业务层从数据层获取领域对象并使用它们进行操作。

这无疑是一个过于简单化的解释,而且可能是极其错误的! :)

显然,由于 LINQ to SQL 是一个 ORM,数据访问层正在创建 LINQ to SQL 对象。将这些对象传递到中间层和顶层的正确模式是什么?

When thinking about traditional layered application design, I often think in terms of 3 layers:

  • The bottom-most layer which actually talks to the database (let's call this the "data access layer"). It returns objects (in some form) to the next layer.
  • The layer above the bottom-most layer (the middle layer, which I'll term the "data layer") takes the objects from the data access layer and returns domain objects to the business layer.
  • The business layer takes the domain objects from the data layer and does things with them.

This is certainly an over-simplified explanation and probably incredibly wrong! :)

Obviously with LINQ to SQL being an ORM, the data access layer is creating LINQ to SQL objects. What is the proper pattern for passing these objects to the middle and top layers?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

爱本泡沫多脆弱 2024-09-19 03:48:24

您可以使用 AutoMapper 等技术将 LINQ to SQL 对象复制到业务层中的业务对象中。根据您的场景,您可以将另一层数据传输对象传递回客户端。您可以再次使用 AutoMapper 将适当的属性从业务对象复制到 DTO 对象。

http://en.wikipedia.org/wiki/Data_transfer_object

http://automapper.codeplex.com/

You can use a technology like AutoMapper to copy your LINQ to SQL Objects into your Business Objects in your business tier. Depending on your scenario you can have another layer of Data Transfer Objects that you pass back to the client. You can once again use AutoMapper to copy the appropriate properties from the Business Objects to the DTO objects.

http://en.wikipedia.org/wiki/Data_transfer_object

http://automapper.codeplex.com/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文