• 泛型(EF)增删改查


    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
                };
            }
    
        }
    }
  • 相关阅读:
    Java 标识符
    Java 关键字详解
    Java 语言的主要特性
    redis学习
    垃圾回收
    JVM内存结构
    sql总结(DML)
    sql总结(DDL)
    加密算法
    《数据结构》 定长顺序串常用操作代码集合
  • 原文地址:https://www.cnblogs.com/wujiangling/p/12200078.html
Copyright © 2020-2023  润新知