Linq To Sql模式中自动生成T-SQL增删改操作系列~PropertyChanged事件实现在子类中记录属性的变化,在基类中进行统一处理
2012-05-25 15:54
721 查看
通过linq to sql生成的实体,有一些特性,这些特性就包括今天要用的 PropertyChanged和PropertyChanging这两个事件,它们分别记录了实体属性在修改前与修改后的事件变化,
有时,我们使用linq to sql或EF去做为底层ORM时,在更新和删除操作时,总觉得性能不如T-SQL来的快,但LINQ TO SQL用起来实在比T-SQL要方便,这时,你是否有个想法,这T—SQL是否可以根据我们的要求自己生成呢,答案是肯定的,今天讲的就讲一个实现这种操作的基础知识
测试:
结果:
下回来说,如何去记录你修改的属性的值是什么,呵呵。
有时,我们使用linq to sql或EF去做为底层ORM时,在更新和删除操作时,总觉得性能不如T-SQL来的快,但LINQ TO SQL用起来实在比T-SQL要方便,这时,你是否有个想法,这T—SQL是否可以根据我们的要求自己生成呢,答案是肯定的,今天讲的就讲一个实现这种操作的基础知识
/// <summary> /// 实体基类 /// </summary> public abstract class EntityBase { public Dictionary<string, object> PropertyChangedList = new Dictionary<string, object>(); protected void Entity_PropertyChanged(object sender, PropertyChangedEventArgs e) { PropertyChangedList.Add(e.PropertyName, null); } } /// <summary> /// 产品类 /// </summary> public partial class Product : EntityBase { #region 导航属性 public Category Category_Extend { get; set; } public virtual IEnumerable<Product_Property_R> Product_Property_R_Extend { get; set; } #endregion #region 分部方法 partial void OnCreated() { this.PropertyChanged += new PropertyChangedEventHandler(base.Entity_PropertyChanged); } #endregion }
测试:
Product p = new Product { CategoryID = 2, CreateDate = DateTime.Now }; p.PropertyChangedList.ToList().ForEach(i => Console.WriteLine(i)); Console.ReadKey();
结果:
下回来说,如何去记录你修改的属性的值是什么,呵呵。
相关文章推荐
- MVC+LINQToSQL的Repository模式之(三)Repository模式实现统一CURD操作,实现EF中的Find主键查找
- Linq to Sql自动生成实体类重名情况的处理
- Linq To Sql数据库操作基类实现不同条件的增删改查
- Silverlight 2 (beta1)数据操作(5)——使用LINQ to SQL进行数据CRUD操作(上)
- MVC+LINQToSQL的Repository模式之(四)数据统一更新的附加类
- Silverlight 2 (beta1)数据操作(6)——使用LINQ to SQL进行数据CRUD操作(下)
- [原创] 利用OBserve模式实现相关类的事件自动处理
- linq to sql取出随机记录/多表查询/将查询出的结果生成xml
- Silverlight 2 (beta1)数据操作(5)——使用LINQ to SQL进行数据CRUD操作(上)
- linq to sql 中的in 操作实现
- LINQ 通过动态生成lambda表达式,实现根据指定属性名称对序列进行排序
- linq to sql取出随机记录/多表查询/将查询出的结果生成xml
- MVC+LINQToSQL的Repository模式之(五)BLL层实现IOC
- 在silverlight中EnitityFramework4.1框架下的以codefirst模式进行后台处理的SQL日志记录方法
- 在MVC2.0 中 进行 LINQTOSQL 实体统一验证方法(上)
- Redis总结(五)缓存雪崩和缓存穿透等问题 Web API系列(三)统一异常处理 C#总结(一)AutoResetEvent的使用介绍(用AutoResetEvent实现同步) C#总结(二)事件Event 介绍总结 C#总结(三)DataGridView增加全选列 Web API系列(二)接口安全和参数校验 RabbitMQ学习系列(六): RabbitMQ 高可用集群
- Linq to Sql 与Linq to Entities 生成的SQL Script与分页实现
- Silverlight 3中如何创建Linq to SQL项目实现MS-SQL数据的操作
- linq to sql 实现左(右)连接,那个方法是对的,该怎么处理
- Silverlight ——使用LINQ to SQL进行数据CRUD操作(上)