Linq To Sql模式中自动生成T-SQL增删改操作系列~PropertyChanged事件实现在子类中记录属性的变化,在基类中进行统一处理

简介:

通过linq to sql生成的实体,有一些特性,这些特性就包括今天要用的  PropertyChanged和PropertyChanging这两个事件,它们分别记录了实体属性在修改前与修改后的事件变化,

有时,我们使用linq to sql或EF去做为底层ORM时,在更新和删除操作时,总觉得性能不如T-SQL来的快,但LINQ TO SQL用起来实在比T-SQL要方便,这时,你是否有个想法,这T—SQL是否可以根据我们的要求自己生成呢,答案是肯定的,今天讲的就讲一个实现这种操作的基础知识

 1     /// <summary>
 2     /// 实体基类
 3     /// </summary>
 4     public abstract class EntityBase
 5     {
 6         public Dictionary<string, object> PropertyChangedList = new Dictionary<string, object>();
 7         protected void Entity_PropertyChanged(object sender, PropertyChangedEventArgs e)
 8         {
 9             PropertyChangedList.Add(e.PropertyName, null);
10         }
11     }
12     /// <summary>
13     /// 产品类
14     /// </summary>
15     public partial class Product : EntityBase
16     {
17         #region 导航属性
18         public Category Category_Extend { get; set; }
19         public virtual IEnumerable<Product_Property_R> Product_Property_R_Extend { get; set; }
20         #endregion
21 
22         #region 分部方法
23         partial void OnCreated()
24         {
25             this.PropertyChanged += new PropertyChangedEventHandler(base.Entity_PropertyChanged);
26         }
27         #endregion
28 
29     }

测试:

1 Product p = new Product { CategoryID = 2, CreateDate = DateTime.Now };
2 p.PropertyChangedList.ToList().ForEach(i => Console.WriteLine(i));
3 
4 Console.ReadKey();

结果:

下回来说,如何去记录你修改的属性的值是什么,呵呵。

本文转自博客园张占岭(仓储大叔)的博客,原文链接:Linq To Sql模式中自动生成T-SQL增删改操作系列~PropertyChanged事件实现在子类中记录属性的变化,在基类中进行统一处理,如需转载请自行联系原博主。

目录
相关文章
|
3天前
|
SQL 分布式计算 DataWorks
DataWorks操作报错合集之SQL错误[0A000],通常是什么造成的
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
10 1
|
17天前
|
SQL 关系型数据库 MySQL
go 通过sql操作mysql
go 通过sql操作mysql
17 1
|
2月前
|
SQL 关系型数据库 数据库
实时计算 Flink版操作报错之使用SQL 将 PostgreSQL 的 date 类型字段转换为 TIMESTAMP 类型时遇到报错,该如何处理
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
3天前
|
SQL Java 数据库连接
深入理解SQL中的LEFT JOIN操作
深入理解SQL中的LEFT JOIN操作
|
8天前
|
SQL 分布式计算 前端开发
MaxCompute操作报错合集之SQL脚本设置参数set odps.mapred.reduce.tasks=18;没有生效,是为什么
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
21天前
|
SQL Cloud Native 关系型数据库
云原生数据仓库AnalyticDB操作报错合集之执行sql的进程报错:"unknown connection id",是什么导致的
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
745 3
|
21天前
|
SQL 分布式计算 DataWorks
DataWorks操作报错合集之在执行SQL时,出现了权限问题。错误代码为odps-0433121,是什么导致的
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
22天前
|
SQL 弹性计算 分布式计算
实时数仓 Hologres操作报错合集之在执行SQL查询时遇到了问题,报错原因是“Invalid index column id: 2”,该怎么处理
在使用阿里云实时数仓Hologres时,可能会遇到不同类型的错误。例如:1.内存超限错误、2.字符串缓冲区扩大错误、3.分区导入错误、4.外部表访问错误、5.服务未开通或权限问题、6.数据类型范围错误,下面是一些常见错误案例及可能的原因与解决策略的概览。
|
25天前
|
SQL 存储 关系型数据库
MySQL数据库——SQL(1)-SQL通用语法、SQL分类、DDL(数据库操作、表操作)
MySQL数据库——SQL(1)-SQL通用语法、SQL分类、DDL(数据库操作、表操作)
25 1
|
4天前
|
关系型数据库 MySQL 数据库
深入OceanBase分布式数据库:MySQL 模式下的 SQL 基本操作
深入OceanBase分布式数据库:MySQL 模式下的 SQL 基本操作