使用EF对数据进行增删改查

EF( Entity Framework )是Microsoft的ORM框架。

ORM 对象关系映射

  • O(Object) 对象,在项目中就是实体,更加精确的来说就是数据Model,也可以说持久化类。
  • R(Relation)关系数据库中数据表。
  • M (Mapping)映射,将对象映射到关系数据,将关系数据映射到对象的过程。

Entity Framework 有三种实作方式

1. DataBase First 数据库先行

2. Model First  模型先行

3. Code First 代码先行

前两种就是拖控件,按照指引一步步,就可以完成Entity Framework 实现。

Code First 就是代码纯手工打造。

上下文对象

上下文对象(context object)的。上下文对象是实体框架服务的入口,它暴露实体对象,管理数据库连接,生成参数化的SQL语句,从数据库中封送(marshals)数据或封送数据到数据库,缓存对象,维护对象变化跟踪,把无类型的结果集转换到一个强类型的集合对象。

一开始,上下文对象为ObjectContext对象,现在,实体框架支持另一个最新的名为DbContext的上下文对象。DbContext大大简单化了使用实体框架的体验。有趣的是,DbContextObjectContext的一个包装器或者外观实现者。以一种直观的、友好的、有效的方式暴露底层ObjectContext的功能。

public class UserInfoRespository : BaseRepository<UserInfo>, IUserInfoRespository
    {

        private fkbMVCEntities dbase;
        public BANKACCOUNTINFORespository(DbContext dt) : base(dt)
        {
            dbase = (fkbMVCEntities)dt;
        }

        /// <summary>
        /// 查询全部数据
        /// </summary>
        /// <param name="reqGrid"></param>
        /// <param name="querryModel"></param>
        /// <returns></returns>
        public DataSourceResult GetBackAccountInfoList()
        {
            var tmpMSTList = dbase.UserInfo;
            //排序
            tmpMSTList = tmpMSTList.OrderByDescending(item => item.UserID);
			//序列化为UserInfoModel
            var retList = tmpMSTList.ProjectToList<UserInfoModel>();
            var reresult = retList.ToDataSourceResult(reqGrid);
            if (reresult != null && reresult.Data != null)
            {
                var dtList = (reresult.Data as List<BANKACCOUNTINFOModel>);
                dtList.SetRowIndex();
                reresult.Data = dtList;
            }
            return reresult;
        }
		
        /// <summary>
        /// 根据条件查询数据
        /// </summary>
        /// <param name="reqGrid"></param>
        /// <param name="querryModel"></param>
        /// <returns></returns>
        public DataSourceResult GetBackAccountInfoList(string userName)
        {
            
            //筛选条件
            var tmpMSTList = dbase.UserInfo;
            if (!string.IsNullOrWhiteSpace(userName))
            {
                tmpMSTList = tmpMSTList.Where(item => item.UserName.Contains(userName));
            }
            //排序
            tmpMSTList = tmpMSTList.OrderByDescending(item => item.UserID);
            var retList = tmpMSTList.ProjectToList<BANKACCOUNTINFOModel>();
            var reresult = retList.ToDataSourceResult(reqGrid);
            if (reresult != null && reresult.Data != null)
            {
                var dtList = (reresult.Data as List<BANKACCOUNTINFOModel>);
                dtList.SetRowIndex();
                reresult.Data = dtList;
            }
            return reresult;
        }

        /// <summary>
        /// 删除全部数据
        /// </summary>
        /// <param name="editModel"></param>
        /// <returns></returns>
        public bool DeleteBackAccountInfo()
        {
            var existModel = dbase.UserInfo;
            if (existModel == null)
            {
                return false;
            }
            dbase.UserInfo.Remove(existModel);
            var i = this.dbase.SaveChanges();
			if(i>0) 
			{
				return true;
			}
			else{
				return false;
			}
        }
		
        /// <summary>
        /// 删除全部数据
        /// </summary>
        /// <param name="editModel"></param>
        /// <returns></returns>
        public ResponseContext<string> DeleteBackAccountInfo(string UserID)
        {
            var existModel = dbase.UserInfo.FirstOrDefault(item => item.UserID == UserID );
            if (existModel == null)
            {
                return false;
            }
            dbase.UserInfo.Remove(existModel);
            var i = this.dbase.SaveChanges();
			if(i>0) 
			{
				return true;
			}
			else{
				return false;
			}
        }

        /// <summary>
        /// 新增数据
        /// </summary>
        /// <param name="listModel"></param>
        /// <returns></returns>
        public bool BeachAddData(UserInfoModel> listModel)
        {
            if (listModel != null)
            {
                UserInfo model = new UserInfo();
                model.ACCOUNT_INFO_ID = item.ACCOUNT_INFO_ID;
                model.BANK_NAME = item.BANK_NAME;
                model.BANK_NETWORK = item.BANK_NETWORK;
                model.BANK_PROVINCE = item.BANK_PROVINCE;
                model.BANK_CITY = item.BANK_CITY;
                model.BANK_PROVINCE_CD = item.BANK_PROVINCE_CD;
                model.BANK_LINE_NO = item.BANK_LINE_NO;
                model.LegalUnitID = item.LegalUnitID;
                model.R_RECORD_STATUS = item.R_RECORD_STATUS;
                model.R_RECORD_CREATE_DATE = item.R_RECORD_CREATE_DATE;
                model.R_RECORD_CREATE_USER = item.R_RECORD_CREATE_USER;
                model.R_RECORD_UPDATE_DATE = item.R_RECORD_UPDATE_DATE;
                model.R_RECORD_UPDATE_USER = item.R_RECORD_UPDATE_USER;
                dbase.UserInfo.Add(model);
                var i = db.SaveChanges();
			    if(i>0) 
				{
					return true;
				}
				else{
					return false;
				}
			}
            else
            {
				return false;
            }
        }


    }
		
        /// <summary>
        /// 批量新增数据
        /// </summary>
        /// <param name="listModel"></param>
        /// <returns></returns>
        public ResponseContext<UserInfoModel> BeachAddData(List<UserInfoModel> listModel)
        {
            var rep = new ResponseContext<UserInfoModel>();
            if (listModel != null && listModel.Count>0)
            {
                foreach (var item in listModel)
                {
                    UserInfo model = new UserInfo();
                    model.ACCOUNT_INFO_ID = item.ACCOUNT_INFO_ID;
                    model.BANK_NAME = item.BANK_NAME;
                    model.BANK_NETWORK = item.BANK_NETWORK;
                    model.BANK_PROVINCE = item.BANK_PROVINCE;
                    model.BANK_CITY = item.BANK_CITY;
                    model.BANK_PROVINCE_CD = item.BANK_PROVINCE_CD;
                    model.BANK_LINE_NO = item.BANK_LINE_NO;
                    model.LegalUnitID = item.LegalUnitID;
                    model.R_RECORD_STATUS = item.R_RECORD_STATUS;
                    model.R_RECORD_CREATE_DATE = item.R_RECORD_CREATE_DATE;
                    model.R_RECORD_CREATE_USER = item.R_RECORD_CREATE_USER;
                    model.R_RECORD_UPDATE_DATE = item.R_RECORD_UPDATE_DATE;
                    model.R_RECORD_UPDATE_USER = item.R_RECORD_UPDATE_USER;
                    dbase.UserInfo.Add(model);
                    var i = db.SaveChanges();
                }
                return rep;
            }
            else
            {
                rep.Head = new ResHead(ErrCode.NoData);
                return rep;
            }
        }


    }

        /// <summary>
        /// 编辑银行账户
        /// </summary>
        /// <param name="queryModel"></param>
        /// <returns></returns>
        public bool EditBankAccount(UserInfoModel modelList)
        {
            var existModel = dbase.T_BANK_ACCOUNT.FirstOrDefault(item => item.UserID == modelList.UserID );
            if (existModel != null )
            {

                existModel.ACCOUNT_ID = modelList.ACCOUNT_ID;
                existModel.ACCOUNT_TYPE = modelList.ACCOUNT_TYPE;
                existModel.PAYEE_ACCOUNT_NATURE = modelList.PAYEE_ACCOUNT_NATURE;
                existModel.PAYEE_SUPPLIER_ID = modelList.PAYEE_SUPPLIER_CD;
                existModel.PAYEE_SUPPLIER_CD = modelList.PAYEE_SUPPLIER_CD;
                existModel.PAYEE_SUPPLIER_NAME = modelList.PAYEE_SUPPLIER_NAME;
                existModel.PAYEE_EMPLOYEE_ID = modelList.PAYEE_EMPLOYEE_ID;
                existModel.PAYEE_EMPLOYEE_NAME = modelList.PAYEE_EMPLOYEE_NAME;
                existModel.PAYEE_BANK_NAME = modelList.PAYEE_BANK_NAME;
                existModel.PAYEE_BANK_NAME_EN = existModel.PAYEE_BANK_NAME_EN;
                existModel.PAYEE_BANK_CARD = modelList.PAYEE_BANK_CARD;
                existModel.PAYEE_NAME_CN = modelList.PAYEE_NAME_CN;
                this.dbase.Entry(existModel).State = EntityState.Modified;
				var i = db.SaveChanges();
			    if(i>0) 
				{
					return true;
				}
				else{
					return false;
				}
            }
            else
            {
                return false;
            }

        }

猜你喜欢

转载自blog.csdn.net/weixin_41392824/article/details/82496649