zoukankan      html  css  js  c++  java
  • 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();
            }

  • 相关阅读:
    更改数据库的主键长度
    数据库字段更改
    mysql数据权限的分配
    CentOS 7下安装Python3.6
    轻量级ORM框架:Dapper中的一些复杂操作和inner join应该注意的坑
    LINQ教程
    C# 委托及各种写法
    Func与Action
    C#中的is和as操作符
    Dapper ORM 用法
  • 原文地址:https://www.cnblogs.com/lori/p/2249146.html
Copyright © 2011-2022 走看看