zoukankan      html  css  js  c++  java
  • 泛型(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
                };
            }
    
        }
    }
  • 相关阅读:
    spring cloud微服务docker启动
    docker安装mysql5.7
    Spring Boot CommandLineRunner的使用
    IDEA Java 源发行版 8 需要目标发行版 1.8
    Centos6.5安装Python2.7.9
    Hive在drop表的时候报错
    反向读取Mysql数据库表结构到PowerDesigner中
    SpringCloud与Consul集成实现负载均衡
    Mac系统安装和卸载brew包管理
    Consul集群搭建
  • 原文地址:https://www.cnblogs.com/wujiangling/p/12200078.html
Copyright © 2011-2022 走看看