设计问题-Dot-Net 3层应用程序中的ORM与OOP-对象应自行保留还是仅业务逻辑层应调用DAL

丹妮

我有一个使用某些业务对象(例如“用户”)的应用程序。我有一个DAL层,应该处理数据库调用。

现在,我想从数据库中获取ID为100的用户。有两种选择:

选项1: User user = new User(100);

选项2: User user = BusinessLogicLayer.UserBL.GetUserFromID(100);

在选项1中-用户类是“自我维护的”,但是如果我要保持层的分离-它需要访问DAL层,而DAL层需要知道此对象(哪种类型创建循环引用)

在选项2中-用户类只是属性的集合。业务逻辑层和DAL层都知道这一点-但它本身没有能力(b / c,两者均被引用,但不能引用它们)。

首选方法是什么?

阿尔曼·埃布拉辛普

选项1:用户用户=新用户(100);

基于Clean CodeBob叔叔等许多知名资源,数据结构应始终与其业务逻辑分开。在您的第一选择,Userdata modellogic service它是错误的。

如果您还希望删除用户或对其进行身份验证或...,该怎么办?第一种方法SOLID(尤其是SRP违反原则非常不稳定

选项2:用户user = BusinessLogicLayer.UserBL.GetUserFromID(100);

您应该有一个数据模型User及其分离的业务逻辑类,例如UserService,,AuthenticationService...,并且这些服务使用您的DAL(可能是您根据RepositoryUnit of work模式编写的)获取数据并执行其功能。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

3层ASP.NET MVC应用程序中的依赖注入

来自分类Dev

在Windows Server中配置Dot .Net应用程序

来自分类Dev

从ASP.Net中的业务逻辑层调用WebMethods

来自分类Dev

在ASP.NET Core 1应用程序的逻辑层中获取ClaimsPrincipal

来自分类Dev

从应用程序服务层调用SignalR集线器是否是ASP.Net Boilerplate中的不良做法?

来自分类Dev

在Windows 10上运行dot net 3.5应用程序

来自分类Dev

.NET Core Web 应用程序使用 .NET Framework 业务层与 .NET Standard 之间

来自分类Dev

应用程序的哪一层应保留安全逻辑(权限,授权)?

来自分类Dev

应用程序的哪一层应保留安全逻辑(权限,授权)?

来自分类Dev

dot net core中基于web api调用的派生配置

来自分类Dev

3层设计中的Web窗体中的问题解析参数

来自分类Dev

OOP设计问题

来自分类Dev

Django:ORM设计问题

来自分类Dev

面试中的OOP设计问题

来自分类Dev

将ASP.NET MVC标准应用程序转换为N层应用程序

来自分类Dev

dot net core中的存储过程

来自分类Dev

由于设计不良的业务和数据库层,MVC4中出现极端性能问题

来自分类Dev

Azure Web 应用程序中的 3 层 Web 应用程序

来自分类Dev

如何在面向对象设计中实现/设计此问题

来自分类Dev

Azure DevOps-捕获dot.net应用程序的错误日志

来自分类Dev

我们可以在哪些版本的 Windows 上运行 dot net 应用程序?

来自分类Dev

N层应用设计

来自分类Dev

NET应用程序中的C#代码问题

来自分类Dev

Ninject在n层应用程序中

来自分类Dev

SaaS应用程序中的持久层

来自分类Dev

在Scala中的应用程序之间共享业务层

来自分类Dev

在Scala中的应用程序之间共享业务层

来自分类Dev

使用Web服务作为数据访问层开发ASP.NET MVC应用程序

来自分类Dev

如何在ASP.Net中将Web服务层添加到Web应用程序

Related 相关文章

  1. 1

    3层ASP.NET MVC应用程序中的依赖注入

  2. 2

    在Windows Server中配置Dot .Net应用程序

  3. 3

    从ASP.Net中的业务逻辑层调用WebMethods

  4. 4

    在ASP.NET Core 1应用程序的逻辑层中获取ClaimsPrincipal

  5. 5

    从应用程序服务层调用SignalR集线器是否是ASP.Net Boilerplate中的不良做法?

  6. 6

    在Windows 10上运行dot net 3.5应用程序

  7. 7

    .NET Core Web 应用程序使用 .NET Framework 业务层与 .NET Standard 之间

  8. 8

    应用程序的哪一层应保留安全逻辑(权限,授权)?

  9. 9

    应用程序的哪一层应保留安全逻辑(权限,授权)?

  10. 10

    dot net core中基于web api调用的派生配置

  11. 11

    3层设计中的Web窗体中的问题解析参数

  12. 12

    OOP设计问题

  13. 13

    Django:ORM设计问题

  14. 14

    面试中的OOP设计问题

  15. 15

    将ASP.NET MVC标准应用程序转换为N层应用程序

  16. 16

    dot net core中的存储过程

  17. 17

    由于设计不良的业务和数据库层,MVC4中出现极端性能问题

  18. 18

    Azure Web 应用程序中的 3 层 Web 应用程序

  19. 19

    如何在面向对象设计中实现/设计此问题

  20. 20

    Azure DevOps-捕获dot.net应用程序的错误日志

  21. 21

    我们可以在哪些版本的 Windows 上运行 dot net 应用程序?

  22. 22

    N层应用设计

  23. 23

    NET应用程序中的C#代码问题

  24. 24

    Ninject在n层应用程序中

  25. 25

    SaaS应用程序中的持久层

  26. 26

    在Scala中的应用程序之间共享业务层

  27. 27

    在Scala中的应用程序之间共享业务层

  28. 28

    使用Web服务作为数据访问层开发ASP.NET MVC应用程序

  29. 29

    如何在ASP.Net中将Web服务层添加到Web应用程序

热门标签

归档