首页 / 知识
关于c#:如何跟踪对业务对象的更改?
2023-04-16 09:43:00

How to track changes to business objects?我有一个创建业务对象或实体以表示诸如Person之类的概念。然后,我可以使用DTO序列化Person并将其发送给客户端。如果客户端更改了对象,则可以在该对象上具有IsDirty标志,因此当它发送回我知道的服务器以对其进行更新时。 但是如果我有一个Order对象怎么办?它具有主要的标题信息,客户,供应商,所需日期等。然后具有OrderItems,它是List 我已经在简单的Person实例上找到了各种示例,而不是诸如Orders这类的标头详细信息示例。 BTW为此使用C#3.5。 首先,您可以使用解决这些问题的现有框架,例如CSLA.NET。这个框架的作者已经解决了这些问题。为此,请访问http://www.rockfordlhotka.net/cslanet/。即使您没有使用完整的框架,这些概念仍然适用。 如果您想自己动手制作,过去我所做的是使用集合从BindingList派生的自定义类型,而不是对集合使用List。从BindingList中进行插入允许您覆盖添加/删除项目的行为。因此,例如,您可以拥有另一个内部的"删除"项目。每次在您的集合上调用重写的Remove方法时,请将该项放入"已删除"集合中,然后调用Remove方法的基本实现。您可以对添加的项目或更改的项目执行相同的操作。 您会发现需要一个工作单元,但是不要写一个工作单元。使用NHibernate或其他一些ORM。那就是他们的目的。它们具有内置的工作单元。 对于大多数应用程序来说,业务对象确实是"必经之路"。您正潜入更深的领域,将会有很多要做的事情。查看DDD。 我也强烈建议您不要在后面的代码中使用类似的代码。查看MVP模式。 我也(在我不愿意学习很多新的,非常关键的事情的同时)研究SOLID。 您可能想查看JP Boodhoo的.net课程,因为它涵盖了很多这些内容。 数据对象不跟踪更改。更改跟踪发生在DataContext和您通过DataContext检索到的对象上。因此,为了跟踪更改,您需要执行以下操作:
现在在代码背后,您可以执行以下操作:
我不建议直接在后面的代码中使用数据上下文,但这是使用Linq To SQL的好方法。我建议将所有数据库交互都放在一个外部项目中,并从GUI调用封装此行为的类。 如果您不熟悉Linq To Sql,我建议创建一个Linq To Sql(dbml)文件。 在解决方案资源管理器中右键单击您的项目,然后选择"添加新项"。选择Linq To SQL文件,然后它将使您连接到数据库并选择表。 然后您可以查看生成的代码,并获得有关Linq To Sql的工作原理以及如何使用它的一些好主意。 将其用作使用Linq to SQL的指南,这将使您走得更远... |
最新内容
相关内容
linux同步客户端命令?
linux同步客户端命令?,时间,网络,服务,系统,认证,状态,管理,信息,分析,地址,linux中的rsync同步怎么配置1、至此,设置 ssh 认证完毕。设置 rsynlinux反序列化命令?
linux反序列化命令?,状态,数据,情况,环境,网络,适当,下来,接口,对象,序列,序列化与反序列化把对象转换为字节序列的过程称为对象的序列化 。实施业务需要的linux命令?
实施业务需要的linux命令?,工作,系统,地址,信息,业务,目录,命令,标准,管理,功能,Linux常用命令linux系统常用操作命令如下:ls:全拼list,功能是列linux命令测试客户端?
linux命令测试客户端?,地址,系统,网络,工具,工作,分析,环境,命令,下行,资料,linux测试网速的工具1、speedtest-cli是一个用Python编写的轻量级linux无效对象的命令?
linux无效对象的命令?,软件,系统,单位,网络,管理,术语,检测,电脑,环境,风险,linux疑问:普通用户的ifconfig命令无法执行,如何解决?建议这个操linux做路由跟踪命令?
linux做路由跟踪命令?,网络,系统,地址,设备,信息,电脑,工作,命令,服务,全球,linux查找网络配置命令是什么?1、首先在电脑上打开Linux系统,然后linux开启命令跟踪?
linux开启命令跟踪?,系统,信息,软件,对比,工具,发行,通信,实时,状态,最新,如何在Linux用户和内核空间中进行动态跟踪1、如果在一开始就需要查linux跟踪路由器命令?
linux跟踪路由器命令?,网络,地址,系统,信息,情况,工具,时间,通信,命令,管理人员,在路由器和Linux系统中,用来跟踪网络路径的命令是什么?命令格网络跟踪命令linux?
网络跟踪命令linux?,网络,地址,工具,系统,时间,数据,下行,信息,设备,基础,linux为了确定网络层经过的路由器数目应用什么命令发现到达目标网络linux跟踪网关命令?
linux跟踪网关命令?,地址,网络,系统,信息,电脑,时间,设备,名字,命令,数据,在linux下如何查IP及网关1、打开linux服务器,然后在桌面的空白处点击安卓linux命令客户端?
安卓linux命令客户端?,系统,软件,名字,设备,互动,服务,工具,基础,发展,代码,android系统,在终端可以输入那些命令1、logcat 输出日志 printenv安装客户端linux命令?
安装客户端linux命令?,软件,中心,在线,发行,全国,公司,工作,国家,信息,命令,请列出linux下安装软件的命令.aptitude——详细查看已安装或可用