首页 > 其他 > 详细

泛型(EF)增删改查

时间:2020-01-16 14:05:50      阅读:105      评论:0      收藏:0      [点我收藏+]
using AppData;
using AppModels.Enum;
using AppModels.result.Base;
using AppData;
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Linq.Expressions;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;

namespace AppData
{
    /// <summary>
    /// 增删改查
    /// </summary>
    /// <typeparam name="T"></typeparam>
    public class CURD<T> where T : class
    {
        /// <summary>
        /// 数据库
        /// </summary>
        private AppDataEntities db = new AppDataEntities();

        /// <summary>
        /// 创建
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public ResultT<T> Create(T value)
        {

            DbSet<T> dbSet = db.Set<T>();
            dbSet.Add(value);
            var r = db.SaveChanges();
            return new ResultT<T>
            {
                State = r == 1 ? PayState.SUCCESS : PayState.FAIL,
                Message = "函数调用成功,结果请参考state",
                data = value
            };

        }

        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>y
        public ResultT<T> Delete(T value)
        {
            throw new NotImplementedException();
        }


        /// <summary>
        /// 查询
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public ResultT<List<T>> Query(Expression<Func<T, bool>> predicate)
        {
            DbSet<T> dbSet = db.Set<T>();
            var entity = dbSet.Where(predicate);// db.T.Where(predicate);
            if (entity.Any() == false)
            {
                return new ResultT<List<T>>
                {
                    Message = "没有找到对应的数据",
                    State = PayState.FAIL
                };
            }

            return new ResultT<List<T>>
            {
                State = PayState.SUCCESS,
                data = entity.ToList(),
                Message = "查询成功"
            };
        }


        /// <summary>
        /// 更新数据
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public ResultT<T> Update(T value)
        {
            var dbEntityEntry = db.Entry(value);

            var notUpdateColumns = new List<string>
                {
                    "Id",
                    "CreateTime",
                    "CreateUserId",
                    "CompanyId"
                };

            foreach (var rawProperty in dbEntityEntry.Entity.GetType().GetTypeInfo().DeclaredProperties)
            {
                if (!notUpdateColumns.Contains(rawProperty.Name))
                {
                    dbEntityEntry.Property(rawProperty.Name).IsModified = true;
                }
            }


            var r = db.SaveChanges();
            return new ResultT<T>
            {
                State = r == 1 ? PayState.SUCCESS : PayState.FAIL,
                Message = "函数调用成功,结果请参考state",
                data = value
            };
        }

    }
}

泛型(EF)增删改查

原文:https://www.cnblogs.com/wujiangling/p/12200078.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!