首页 / 知识
关于c#:使用Linq To SQL和DTO分离关注点
2023-04-14 15:40:00

Separating concerns with Linq To SQL and DTO's我最近开始了一个新的Webforms项目,并决定将业务类与任何DBML引用分开。 我的业务层类将访问离散的数据层方法,并返回DTO的集合。 因此,数据层可能会像下面这样投影DTO:
尽管构建DTO对象会增加工作量,但这似乎是一种更好的方法来紧密绑定业务与数据层,这意味着我可以在不存在数据库的情况下测试业务层。 我的问题是,这是一种好的做法吗?有没有一种生成DTO的方法(可能通过SQLMetal),以及随着项目的进行我还会遇到什么其他问题? 我不知道这是否是最佳实践,但我在不久前就编写了类似的代码,因为我也感到可以通过在应用程序中使用自己的类而不是LINQ-designer生成的类来改善关注点的分离。
您可能需要考虑仅从数据访问方法返回IQueryable 这样做的好处是,您可以轻松地动态修改查询,并最大程度地减少从SQL Server返回的数据量。
例如。如果您的方法签名是 在此示例中,数据库中仅返回一条记录,而我想象当前您的代码将返回所有客户,或者您将需要编写单独的方法(因此是非常重复的代码)来满足您可能需要的所有不同内容过滤。 在我看来,在大多数情况下,处理LINQ不需要DTO对象。生成的LINQ类可以很容易地进行测试。 LINQ使您能够使用相同的查询来查询来自不同来源的数据。它使您能够针对对象列表而不是实际数据库测试查询。 |
最新内容
相关内容
linux存储数据命令?
linux存储数据命令?,系统,管理,数据,设备,情况,地址,工作,命令,服务,平台,Linux文件系统操作命令1、cat:可以显示文件的内容(经常和more搭配使linux数据库查找命令?
linux数据库查找命令?,位置,名称,状态,服务,软件,信息,系统,命令,名字,密码,在linux中如何用命令查找文件在哪使用查找命令 “find”命令允许linux数据库同步命令?
linux数据库同步命令?,信息,系统,汽车,车辆,服务,工作,通信,一致,分析,数据,DB2数据库在linux操作系统的指令有哪些?1、linux系统常用操作命令linux命令创建项目组?
linux命令创建项目组?,管理,密码,项目,命令,系统,位置,文件,用户组,用户,文件夹,linux命令中用root用户新建一个user1用户,新建一个group1的组复制项目的linux命令?
复制项目的linux命令?,系统,项目,文件,命令,目录,源文件,语法,选项,目标,功能,在Linux操作系统中复制文件或目录时使用的命令是()。1、在Linuxlinux建立数据库命令?
linux建立数据库命令?,软件,系统,工作,数据,密码,工具,数据库,一致,网络,服务,linux中在shell中怎么创建一个数据库1、以下的文章主要讲述的是linux命令进数据库?
linux命令进数据库?,地址,系统,名字,服务,密码,命令,读法,数据库,操作系统,主机,linux系统mysql数据库怎么进入数据库首先确保linux下mysql安linux清空表数据命令?
linux清空表数据命令?,系统,数据,软件,名称,不了,命令,文件,电脑,地址,位置,Linux删除文件的命令?1、linux 删除文件指令:输入rd盘符名:\文件夹linux拷贝数据命令?
linux拷贝数据命令?,系统,地址,文件,数据,命令,目录,服务,基本知识,项目,密码,linux复制命令?1、在Linux中,用于复制文件和目录的命令是cp。cplinux命令项目部署?
linux命令项目部署?,项目,服务,环境,软件,系统,代理,管理,统一,做好,业务,怎么把php部署到apache服务器上linux?1、在linux部署php项目的方法:linux数据库检查命令?
linux数据库检查命令?,服务,状态,地址,位置,系统,信息,命令,工作,情况,密码,在linux中,怎样查看Mysql服务运行状态?1、psaux或netstat-tlunppslinux部署项目的命令?
linux部署项目的命令?,项目,系统,设备,环境,工作,基础,传播,信息,标准,代码,Linux部署springBoot项目并且查看控制台日志指定路径:如下: /data/w