linq to sql统一更新方法,直接返回更新的对象(解决更新后再刷新数据错误显示问题)

简介:

 /// <summary>
        /// 通过主键,得到实体
        /// 始终从数据库中获取数据
        /// </summary>
        /// <param name="keyValues"></param>
        /// <returns></returns> 

public TEntity Find(params object[] keyValues)
        {
            var mapping = _db.Mapping.GetTable(typeof(TEntity));
            var keys = mapping.RowType.IdentityMembers.Select((m, i) => m.Name + " = @" + i).ToArray();
            TEntity entity = this.DbSet.Where(String.Join(" && ", keys), keyValues).FirstOrDefault();
            this._db.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues, entity);
            return entity;
        }

 

   /// <summary>
        ///  更新实体
        /// </summary>
        /// <param name="entity"></param>

 public void Update(TEntity entity)
        {
            TEntity originalEntity = this.Find(entity.PrimaryKey);
            if (originalEntity == null)
                this._db.GetTable<TEntity>().InsertOnSubmit(entity);
            else
                EmitMapper.ObjectMapperManager.DefaultInstance.GetMapper<TEntity, TEntity>().Map(entity, originalEntity);
            base.SubmitChanges();
        }

本文转自博客园张占岭(仓储大叔)的博客,原文链接:linq to sql统一更新方法,直接返回更新的对象(解决更新后再刷新数据错误显示问题),如需转载请自行联系原博主。

目录
相关文章
|
6天前
|
SQL 存储 缓存
SQL Server 数据太多如何优化
11种优化方案供你参考,优化 SQL Server 数据库性能得从多个方面着手,包括硬件配置、数据库结构、查询优化、索引管理、分区分表、并行处理等。通过合理的索引、查询优化、数据分区等技术,可以在数据量增大时保持较好的性能。同时,定期进行数据库维护和清理,保证数据库高效运行。
|
8天前
|
SQL BI 数据库
SQL操作的一些基本方法
【10月更文挑战第27天】SQL操作的一些基本方法
21 3
|
8天前
|
SQL 监控 固态存储
SQL优化有哪些方法?
【10月更文挑战第27天】SQL优化有哪些方法?
9 3
|
21天前
|
SQL 数据库 索引
SQL语句实现投影连接:方法与技巧详解
在SQL数据库查询中,投影和连接是两个核心概念
|
21天前
|
SQL 移动开发 Oracle
SQL语句实现查询连续六天数据的方法与技巧
在数据库查询中,有时需要筛选出符合特定时间连续性条件的数据记录
|
21天前
|
SQL 安全 关系型数据库
SQL语句中表名通配符的使用技巧与方法
在SQL查询中,通配符通常用于匹配字符串数据,如列值中的部分字符
|
21天前
|
SQL 数据可视化 BI
SQL语句及查询结果解析:技巧与方法
在数据库管理和数据分析中,SQL语句扮演着至关重要的角色
|
21天前
|
SQL 数据库 索引
SQL语句实现投影连接:技巧与方法详解
在SQL数据库操作中,投影连接(Projection Join)是一种常见的数据查询技术,它结合了投影(Projection)和连接(Join)两种操作
|
2月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")