entity framework 6 自己编写的通用数据类

本文介绍了一个基于ORM框架的通用数据访问层实现方法,包括实体的增删改查、条件查询、排序、分页等功能,并提供了具体的代码实现示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. public class BaseDAL  
  2.    {  
  3.        string strConn = "";  
  4.        public BaseDAL(string connString)  
  5.        {  
  6.            strConn = connString;  
  7.        }  
  8.  
  9.        #region 通用增删改查  
  10.        #region 非原始sql语句方式  
  11.        /// <summary>  
  12.        /// 新增  
  13.        /// </summary>  
  14.        /// <param name="entity">实体</param>  
  15.        /// <returns>返回受影响行数</returns>  
  16.        public bool Add<T>(T entity) where T : class  
  17.        {  
  18.            using (SysDb<T> db = new SysDb<T>(strConn))  
  19.            {  
  20.                db.Entry<T>(entity).State = EntityState.Added;  
  21.                return db.SaveChanges() > 0;  
  22.            }  
  23.        }  
  24.   
  25.        /// <summary>  
  26.        /// 修改  
  27.        /// </summary>  
  28.        /// <param name="entity">实体</param>  
  29.        /// <returns>返回受影响行数</returns>  
  30.        public bool Update<T>(T entity) where T : class  
  31.        {  
  32.            using (SysDb<T> db = new SysDb<T>(strConn))  
  33.            {  
  34.                db.Set<T>().Attach(entity);  
  35.                db.Entry<T>(entity).State = EntityState.Modified;  
  36.                return db.SaveChanges() > 0;  
  37.            }  
  38.        }  
  39.   
  40.        /// <summary>  
  41.        /// 删除  
  42.        /// </summary>  
  43.        /// <param name="entity">实体</param>  
  44.        /// <returns>返回受影响行数</returns>  
  45.        public bool Delete<T>(T entity) where T : class  
  46.        {  
  47.            using (SysDb<T> db = new SysDb<T>(strConn))  
  48.            {  
  49.                db.Set<T>().Attach(entity);  
  50.                db.Entry<T>(entity).State = EntityState.Deleted;  
  51.                return db.SaveChanges() > 0;  
  52.            }  
  53.        }  
  54.   
  55.        /// <summary>  
  56.        /// 根据条件删除  
  57.        /// </summary>  
  58.        /// <param name="deleWhere">删除条件</param>  
  59.        /// <returns>返回受影响行数</returns>  
  60.        public bool DeleteByConditon<T>(Expression<Func<T, bool>> deleWhere) where T : class  
  61.        {  
  62.            using (SysDb<T> db = new SysDb<T>(strConn))  
  63.            {  
  64.                List<T> entitys = db.Set<T>().Where(deleWhere).ToList();  
  65.                entitys.ForEach(m => db.Entry<T>(m).State = EntityState.Deleted);  
  66.                return db.SaveChanges() > 0;  
  67.            }  
  68.        }  
  69.   
  70.        /// <summary>  
  71.        /// 查找单个  
  72.        /// </summary>  
  73.        /// <param name="id">主键</param>  
  74.        /// <returns></returns>  
  75.        public T GetSingleById<T>(int id) where T : class  
  76.        {  
  77.            using (SysDb<T> db = new SysDb<T>(strConn))  
  78.            {  
  79.                return db.Set<T>().Find(id);  
  80.            }  
  81.        }  
  82.   
  83.        /// <summary>  
  84.        /// 查找单个  
  85.        /// </summary>  
  86.        /// <param name="seleWhere">查询条件</param>  
  87.        /// <returns></returns>  
  88.        public T GetSingle<T>(Expression<Func<T, bool>> seleWhere) where T : class  
  89.        {  
  90.            using (SysDb<T> db = new SysDb<T>(strConn))  
  91.            {  
  92.                return db.Set<T>().AsExpandable().FirstOrDefault(seleWhere);  
  93.            }  
  94.        }  
  95.   
  96.        /// <summary>  
  97.        /// 获取所有实体集合  
  98.        /// </summary>  
  99.        /// <returns></returns>  
  100.        public List<T> GetAll<T>() where T : class  
  101.        {  
  102.            using (SysDb<T> db = new SysDb<T>(strConn))  
  103.            {  
  104.                return db.Set<T>().AsExpandable().ToList<T>();  
  105.            }  
  106.        }  
  107.   
  108.        /// <summary>  
  109.        /// 获取所有实体集合(单个排序)  
  110.        /// </summary>  
  111.        /// <returns></returns>  
  112.        public List<T> GetAll<T, Tkey>(Expression<Func<T, Tkey>> orderWhere, bool isDesc) where T : class  
  113.        {  
  114.            using (SysDb<T> db = new SysDb<T>(strConn))  
  115.            {  
  116.                return CommonSort(db.Set<T>().AsExpandable(), orderWhere, isDesc).ToList<T>();  
  117.            }  
  118.        }  
  119.   
  120.        /// <summary>  
  121.        /// 获取所有实体集合(多个排序)  
  122.        /// </summary>  
  123.        /// <returns></returns>  
  124.        public List<T> GetAll<T>(params OrderModelField[] orderByExpression) where T : class  
  125.        {  
  126.            using (SysDb<T> db = new SysDb<T>(strConn))  
  127.            {  
  128.                return CommonSort(db.Set<T>().AsExpandable(), orderByExpression).ToList();  
  129.            }  
  130.        }  
  131.   
  132.        /// <summary>  
  133.        /// 单个排序通用方法  
  134.        /// </summary>  
  135.        /// <typeparam name="Tkey">排序字段</typeparam>  
  136.        /// <param name="data">要排序的数据</param>  
  137.        /// <param name="orderWhere">排序条件</param>  
  138.        /// <param name="isDesc">是否倒序</param>  
  139.        /// <returns>排序后的集合</returns>  
  140.        public IQueryable<T> CommonSort<T, Tkey>(IQueryable<T> data, Expression<Func<T, Tkey>> orderWhere, bool isDesc) where T : class  
  141.        {  
  142.            if (isDesc)  
  143.            {  
  144.                return data.OrderByDescending(orderWhere);  
  145.            }  
  146.            else  
  147.            {  
  148.                return data.OrderBy(orderWhere);  
  149.            }  
  150.        }  
  151.   
  152.        /// <summary>  
  153.        /// 多个排序通用方法  
  154.        /// </summary>  
  155.        /// <typeparam name="Tkey">排序字段</typeparam>  
  156.        /// <param name="data">要排序的数据</param>  
  157.        /// <param name="orderWhereAndIsDesc">字典集合(排序条件,是否倒序)</param>  
  158.        /// <returns>排序后的集合</returns>  
  159.        public IQueryable<T> CommonSort<T>(IQueryable<T> data, params OrderModelField[] orderByExpression) where T : class  
  160.        {  
  161.            //创建表达式变量参数  
  162.            var parameter = Expression.Parameter(typeof(T), "o");  
  163.   
  164.            if (orderByExpression != null && orderByExpression.Length > 0)  
  165.            {  
  166.                for (int i = 0; i < orderByExpression.Length; i++)  
  167.                {  
  168.                    //根据属性名获取属性  
  169.                    var property = typeof(T).GetProperty(orderByExpression[i].PropertyName);  
  170.                    //创建一个访问属性的表达式  
  171.                    var propertyAccess = Expression.MakeMemberAccess(parameter, property);  
  172.                    var orderByExp = Expression.Lambda(propertyAccess, parameter);  
  173.   
  174.                    string OrderName = "";  
  175.                    if (i > 0)  
  176.                    {  
  177.                        OrderName = orderByExpression[i].IsDESC ? "ThenByDescending" : "ThenBy";  
  178.                    }  
  179.                    else  
  180.                        OrderName = orderByExpression[i].IsDESC ? "OrderByDescending" : "OrderBy";  
  181.   
  182.                    MethodCallExpression resultExp = Expression.Call(typeof(Queryable), OrderName, new Type[] { typeof(T), property.PropertyType },  
  183.                        data.Expression, Expression.Quote(orderByExp));  
  184.   
  185.                    data = data.Provider.CreateQuery<T>(resultExp);  
  186.                }  
  187.            }  
  188.            return data;  
  189.        }  
  190.   
  191.        /// <summary>  
  192.        /// 根据条件查询实体集合  
  193.        /// </summary>  
  194.        /// <param name="seleWhere">查询条件 lambel表达式</param>  
  195.        /// <returns></returns>  
  196.        public List<T> GetList<T>(Expression<Func<T, bool>> seleWhere) where T : class  
  197.        {  
  198.            using (SysDb<T> db = new SysDb<T>(strConn))  
  199.            {  
  200.                return db.Set<T>().AsExpandable().Where(seleWhere).ToList();  
  201.            }  
  202.        }  
  203.   
  204.        /// <summary>  
  205.        /// 根据条件查询实体集合  
  206.        /// </summary>  
  207.        /// <param name="seleWhere">查询条件 lambel表达式</param>  
  208.        /// <returns></returns>  
  209.        public List<T> GetList<T, TValue>(Expression<Func<T, TValue>> seleWhere, IEnumerable<TValue> conditions) where T : class  
  210.        {  
  211.            using (SysDb<T> db = new SysDb<T>(strConn))  
  212.            {  
  213.   
  214.                return db.Set<T>().AsExpandable().WhereIn<T, TValue>(seleWhere, conditions).ToList();  
  215.            }  
  216.        }  
  217.   
  218.        /// <summary>  
  219.        /// 根据条件查询实体集合(单个字段排序)  
  220.        /// </summary>  
  221.        /// <param name="seleWhere">查询条件 lambel表达式</param>  
  222.        /// <returns></returns>  
  223.        public List<T> GetList<T, Tkey>(Expression<Func<T, bool>> seleWhere, Expression<Func<T, Tkey>> orderWhere, bool isDesc) where T : class  
  224.        {  
  225.            using (SysDb<T> db = new SysDb<T>(strConn))  
  226.            {  
  227.                return CommonSort(db.Set<T>().AsExpandable().Where(seleWhere), orderWhere, isDesc).ToList();  
  228.            }  
  229.        }  
  230.   
  231.        /// <summary>  
  232.        /// 根据条件查询实体集合(多个字段排序)  
  233.        /// </summary>  
  234.        /// <param name="seleWhere">查询条件 lambel表达式</param>  
  235.        /// <returns></returns>  
  236.        public List<T> GetList<T>(Expression<Func<T, bool>> seleWhere, params OrderModelField[] orderByExpression) where T : class  
  237.        {  
  238.            using (SysDb<T> db = new SysDb<T>(strConn))  
  239.            {  
  240.                return CommonSort(db.Set<T>().AsExpandable().Where(seleWhere), orderByExpression).ToList();  
  241.            }  
  242.        }  
  243.   
  244.        /// <summary>  
  245.        /// 获取分页集合(无条件无排序)  
  246.        /// </summary>  
  247.        /// <returns></returns>  
  248.        public List<T> GetListPaged<T, Tkey>(int pageIndex, int pageSize, out int totalcount) where T : class  
  249.        {  
  250.            using (SysDb<T> db = new SysDb<T>(strConn))  
  251.            {  
  252.                totalcount = db.Set<T>().AsExpandable().Count();//获取总数  
  253.                //需要增加AsExpandable(),否则查询的是所有数据到内存,然后再排序  AsExpandable是linqkit.dll中的方法  
  254.                return db.Set<T>().AsExpandable().Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();  
  255.            }  
  256.        }  
  257.   
  258.        /// <summary>  
  259.        /// 获取分页集合(无条件单个排序)  
  260.        /// </summary>  
  261.        /// <returns></returns>  
  262.        public List<T> GetListPaged<T, Tkey>(int pageIndex, int pageSize, Expression<Func<T, Tkey>> orderWhere, bool isDesc, out int totalcount) where T : class  
  263.        {  
  264.            using (SysDb<T> db = new SysDb<T>(strConn))  
  265.            {  
  266.                totalcount = db.Set<T>().AsExpandable().Count();//获取总数  
  267.                //需要增加AsExpandable(),否则查询的是所有数据到内存,然后再排序  AsExpandable是linqkit.dll中的方法  
  268.                return CommonSort(db.Set<T>().AsExpandable(), orderWhere, isDesc).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();  
  269.            }  
  270.        }  
  271.   
  272.        /// <summary>  
  273.        /// 获取分页集合(无条件多字段排序)  
  274.        /// </summary>  
  275.        /// <returns></returns>  
  276.        public List<T> GetListPaged<T>(int pageIndex, int pageSize, out int totalcount, params OrderModelField[] orderByExpression) where T : class  
  277.        {  
  278.            using (SysDb<T> db = new SysDb<T>(strConn))  
  279.            {  
  280.                totalcount = db.Set<T>().AsExpandable().Count();//获取总数  
  281.                //需要增加AsExpandable(),否则查询的是所有数据到内存,然后再排序  AsExpandable是linqkit.dll中的方法  
  282.                return CommonSort(db.Set<T>().AsExpandable(), orderByExpression).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();  
  283.            }  
  284.        }  
  285.   
  286.        /// <summary>  
  287.        /// 获取分页集合(有条件无排序)  
  288.        /// </summary>  
  289.        /// <returns></returns>  
  290.        public List<T> GetListPaged<T, Tkey>(int pageIndex, int pageSize, Expression<Func<T, bool>> seleWhere, out int totalcount) where T : class  
  291.        {  
  292.            using (SysDb<T> db = new SysDb<T>(strConn))  
  293.            {  
  294.                totalcount = db.Set<T>().AsExpandable().Where(seleWhere).Count();//获取总数  
  295.                //需要增加AsExpandable(),否则查询的是所有数据到内存,然后再排序  AsExpandable是linqkit.dll中的方法  
  296.                return db.Set<T>().AsExpandable().Where(seleWhere).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();  
  297.            }  
  298.        }  
  299.   
  300.        /// <summary>  
  301.        /// 获取分页集合(有条件单个排序)  
  302.        /// </summary>  
  303.        /// <returns></returns>  
  304.        public List<T> GetListPaged<T, Tkey>(int pageIndex, int pageSize, Expression<Func<T, bool>> seleWhere,  
  305.            Expression<Func<T, Tkey>> orderWhere, bool isDesc, out int totalcount) where T : class  
  306.        {  
  307.            using (SysDb<T> db = new SysDb<T>(strConn))  
  308.            {  
  309.                totalcount = db.Set<T>().AsExpandable().Where(seleWhere).Count();//获取总数  
  310.                //需要增加AsExpandable(),否则查询的是所有数据到内存,然后再排序  AsExpandable是linqkit.dll中的方法  
  311.                return CommonSort(db.Set<T>().AsExpandable().Where(seleWhere), orderWhere, isDesc).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();  
  312.            }  
  313.        }  
  314.   
  315.        /// <summary>  
  316.        /// 获取分页集合(有条件多字段排序)  
  317.        /// </summary>  
  318.        /// <returns></returns>  
  319.        public List<T> GetListPaged<T>(int pageIndex, int pageSize, Expression<Func<T, bool>> seleWhere,  
  320.            out int totalcount, params OrderModelField[] orderModelFiled) where T : class  
  321.        {  
  322.            using (SysDb<T> db = new SysDb<T>(strConn))  
  323.            {  
  324.                totalcount = db.Set<T>().AsExpandable().Where(seleWhere).Count();//获取总数  
  325.                //需要增加AsExpandable(),否则查询的是所有数据到内存,然后再排序  AsExpandable是linqkit.dll中的方法  
  326.                return CommonSort(db.Set<T>().AsExpandable().Where(seleWhere), orderModelFiled).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();  
  327.            }  
  328.        }  
  329.        #endregion  
  330.  
  331.        #region 原始sql操作  
  332.        /// <summary>  
  333.        /// 执行操作  
  334.        /// </summary>  
  335.        /// <param name="sql"></param>  
  336.        /// <param name="paras"></param>  
  337.        public void ExecuteSql(string sql, params object[] paras)  
  338.        {  
  339.            using (SysDb db = new SysDb(strConn))  
  340.            {  
  341.                db.Database.ExecuteSqlCommand(sql, paras);  
  342.            }  
  343.        }  
  344.   
  345.        /// <summary>  
  346.        /// 查询列表  
  347.        /// </summary>  
  348.        /// <typeparam name="T"></typeparam>  
  349.        /// <param name="sql"></param>  
  350.        /// <param name="paras"></param>  
  351.        /// <returns></returns>  
  352.        public List<T> QueryList<T>(string sql, params object[] paras) where T : class  
  353.        {  
  354.            using (SysDb db = new SysDb(strConn))  
  355.            {  
  356.                return db.Database.SqlQuery<T>(sql, paras).ToList();  
  357.            }  
  358.        }  
  359.   
  360.        /// <summary>  
  361.        /// 查询单个  
  362.        /// </summary>  
  363.        /// <typeparam name="T"></typeparam>  
  364.        /// <param name="sql"></param>  
  365.        /// <param name="paras"></param>  
  366.        /// <returns></returns>  
  367.        public T QuerySingle<T>(string sql, params object[] paras) where T : class  
  368.        {  
  369.            using (SysDb<T> db = new SysDb<T>(strConn))  
  370.            {  
  371.                return db.Database.SqlQuery<T>(sql, paras).FirstOrDefault();  
  372.            }  
  373.        }  
  374.   
  375.        /// <summary>  
  376.        /// 执行事务  
  377.        /// </summary>  
  378.        /// <param name="lsSql"></param>  
  379.        /// <param name="lsParas"></param>  
  380.        public void ExecuteTransaction(List<String> lsSql, List<Object[]> lsParas)  
  381.        {  
  382.            using (SysDb db = new SysDb(strConn))  
  383.            {  
  384.                using (var tran = db.Database.BeginTransaction())  
  385.                {  
  386.                    try  
  387.                    {  
  388.                        for (int i = 0; i < lsSql.Count; i++)  
  389.                        {  
  390.                            if (lsParas != null && lsParas.Count > 0)  
  391.                            {  
  392.                                db.Database.ExecuteSqlCommand(lsSql[i], lsParas[i]);  
  393.                            }  
  394.                        }  
  395.                        foreach (String item in lsSql)  
  396.                        {  
  397.                            db.Database.ExecuteSqlCommand(item);  
  398.                        }  
  399.   
  400.                        tran.Commit();  
  401.                    }  
  402.                    catch (Exception ex)  
  403.                    {  
  404.                        tran.Rollback();  
  405.                        throw ex;  
  406.                    }  
  407.                }  
  408.            }  
  409.        }  
  410.        #endregion  
  411.        #endregion  
  412.  
  413.        #region 通用属性  
  414.        /// <summary>  
  415.        /// 获取数据库服务器当前时间。  
  416.        /// </summary>  
  417.        public DateTime ServerTime  
  418.        {  
  419.            get  
  420.            {  
  421.                using (SysDb db = new SysDb(strConn))  
  422.                {  
  423.                    String sql = "SELECT GETDATE()";  
  424.                    Object objServerTime = db.Database.SqlQuery<Object>(sql);  
  425.                    return Convert.ToDateTime(objServerTime);  
  426.                }  
  427.            }  
  428.        }  
  429.   
  430.        /// <summary>  
  431.        /// 获取数据库版本。  
  432.        /// </summary>  
  433.        public String DatabaseVersion  
  434.        {  
  435.            get  
  436.            {  
  437.                using (SysDb db = new SysDb(strConn))  
  438.                {  
  439.                    try  
  440.                    {  
  441.                        String sql = "SELECT Version FROM Sys_Version";  
  442.                        Object objServerTime = db.Database.SqlQuery<Object>(sql);  
  443.                        return Convert.ToString(objServerTime);  
  444.                    }  
  445.                    catch  
  446.                    {  
  447.                    }  
  448.                    return String.Empty;  
  449.                }  
  450.            }  
  451.        }  
  452.        #endregion  
  453.   
  454.    }  
  455.    public static class QueryableExtension  
  456.    {  
  457.        /// <summary>  
  458.        /// 扩展方法  支持 in 操作  
  459.        /// </summary>  
  460.        /// <typeparam name="TEntity">需要扩展的对象类型</typeparam>  
  461.        /// <typeparam name="TValue">in 的值类型</typeparam>  
  462.        /// <param name="source">需要扩展的对象</param>  
  463.        /// <param name="valueSelector">值选择器 例如c=>c.UserId</param>  
  464.        /// <param name="values">值集合</param>  
  465.        /// <returns></returns>  
  466.        public static IQueryable<TEntity> WhereIn<TEntity, TValue>(this IQueryable<TEntity> source, Expression<Func<TEntity, TValue>> valueSelector,  
  467.                IEnumerable<TValue> values)  
  468.        {  
  469.            if (null == valueSelector) { throw new ArgumentNullException("valueSelector"); }  
  470.            if (null == values) { throw new ArgumentNullException("values"); }  
  471.            ParameterExpression p = valueSelector.Parameters.Single();  
  472.   
  473.            if (!values.Any())  
  474.            {  
  475.                return source;  
  476.            }  
  477.            var equals = values.Select(value => (Expression)Expression.Equal(valueSelector.Body, Expression.Constant(value, typeof(TValue))));  
  478.            var body = equals.Aggregate<Expression>((accumulate, equal) => Expression.Or(accumulate, equal));  
  479.            return source.Where(Expression.Lambda<Func<TEntity, bool>>(body, p));  
  480.        }  
  481.    }  
  482.    public struct OrderModelField  
  483.    {  
  484.   
  485.        public bool IsDESC { getset; }  
  486.        public string PropertyName { getset; }  
  487.    }  

dbcontext类:

[csharp]  view plain  copy
  1. public class SysDb : DbContext  
  2. {  
  3.     bool isNew = true;//是否是新的sql执行  
  4.     string strMsg = "";//sql执行的相关信息  
  5.     string strConn = "";//数据库连接字符串  
  6.     string UserName = "";//日志用户名称  
  7.     string AdditionalInfo = "";//日志额外信息  
  8.     public SysDb(string connString) : // 数据库链接字符串  
  9.         base(connString)  
  10.     {  
  11.         strConn = connString;  
  12.         Database.SetInitializer<SysDb>(null);//设置为空,防止自动检查和生成  
  13.         base.Database.Log = (info) => Debug.WriteLine(info);  
  14.     }  
  15.   
  16.     public SysDb(string connString, string logUserName, string logAdditionalInfo) : // 数据库链接字符串  
  17.         base(connString)  
  18.     {  
  19.         strConn = connString;  
  20.         Database.SetInitializer<SysDb>(null);//设置为空,防止自动检查和生成  
  21.         UserName = logUserName;  
  22.         AdditionalInfo = logAdditionalInfo;  
  23.         base.Database.Log = AddLogger;  
  24.     }  
  25.   
  26.     protected override void OnModelCreating(DbModelBuilder modelBuilder)  
  27.     {  
  28.         //去掉复数映射  
  29.         modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();  
  30.         base.OnModelCreating(modelBuilder);  
  31.     }  
  32.   
  33.     /// <summary>  
  34.     /// 添加日志  
  35.     /// </summary>  
  36.     /// <param name="info"></param>  
  37.     public void AddLogger(string info)  
  38.     {  
  39.         if (info != "\r\n" && (!info.Contains("Sys_EventLog")))  
  40.         {  
  41.             string strTemp = info.ToUpper().Trim();  
  42.             if (isNew)  
  43.             {  
  44.                 //记录增删改  
  45.                 if (strTemp.StartsWith("INSERT") || strTemp.StartsWith("UPDATE") || strTemp.StartsWith("DELETE"))  
  46.                 {  
  47.                     strMsg = info;  
  48.                     isNew = false;  
  49.                 }  
  50.             }  
  51.             else  
  52.             {  
  53.                 if (strTemp.StartsWith("CLOSED CONNECTION"))  
  54.                 {  
  55.                     //增加新日志  
  56.                     using (SysDb db = new SysDb(strConn))  
  57.                     {  
  58.                         try  
  59.                         {  
  60. //保存日志到数据库或其他地方  
  61.   
  62.                         }  
  63.                         catch (Exception ex)  
  64.                         {  
  65.                             using (System.IO.StreamWriter sw = new System.IO.StreamWriter(AppDomain.CurrentDomain.BaseDirectory + "//logError.txt"))  
  66.                             {  
  67.                                 sw.Write(ex.Message);  
  68.                                 sw.Flush();  
  69.                             }  
  70.                         }  
  71.                     }  
  72.                     //清空  
  73.                     strMsg = "";  
  74.                     isNew = true;  
  75.                 }  
  76.                 else  
  77.                 {  
  78.                     strMsg += info;  
  79.                 }  
  80.             }  
  81.   
  82.         }  
  83.     }  
  84.   
  85.       
  86. }  
  87. public class SysDb<T> : SysDb where T : class  
  88. {  
  89.     public SysDb(string connString) : // 数据库链接字符串  
  90.         base(connString)  
  91.     {  
  92.         Database.SetInitializer<SysDb<T>>(null);//设置为空,防止自动检查和生成  
  93.     }  
  94.   
  95.     public SysDb(string connString, string logUserName, string logAdditionalInfo) : // 数据库链接字符串  
  96.         base(connString,logUserName,logAdditionalInfo)  
  97.     {  
  98.         Database.SetInitializer<SysDb<T>>(null);//设置为空,防止自动检查和生成  
  99.     }  
  100.   
  101.     public DbSet<T> Entities { getset; }  
  102. }  


界面使用:(bll层忽略)

[csharp]  view plain  copy
  1. public class BusinessController : Controller  
  2.    {  
  3.        //  
  4.        // GET: /Jygl/Business/  
  5.        BaseBLL basebll = new BaseBLL(WebHelper.Conn);  
  6.   
  7.        public ActionResult GetXMList(int page,int rows)  
  8.        {  
  9.            int count = 0;  
  10.            //查询条件  
  11.            //Expression<Func<JY_XM, bool>> searchPredicate = PredicateBuilder.True<JY_XM>();  
  12.            //searchPredicate = searchPredicate.And(c => c.UserName.Contains(""));  
  13.            Expression<Func<JY_XM, int>> keySelector = u => u.UID;  
  14.            string str = ExceptionHelper<JY_XM>.TryCatchPageQueryJson<int>(basebll.GetListPaged, page, rows, keySelector, falseout count);  
  15.            return Content(str);   
  16.        }  
  17.   
  18.        [HttpPost]  
  19.        public ActionResult XMEdit(JY_XM jyxm)  
  20.        {  
  21.            basebll.Add(jyxm);  
  22.            return View();  
  23.        }  
  24.   
  25.        public ActionResult GetAllGCLB()  
  26.        {  
  27.   
  28.            List<DICT_GCLB> lsGCLB = basebll.GetAll<DICT_GCLB>();  
  29.            DICT_GCLB dicNew=new DICT_GCLB();  
  30.            dicNew.GCLBText="-请选择-";  
  31.            dicNew.GCLBId=0;  
  32.            lsGCLB.Add(dicNew);  
  33.   
  34.            return Content(WebHelper.Json(lsGCLB));  
  35.        }  
  36.   
  37.        public ActionResult GetAllArea()  
  38.        {  
  39.            List<DICT_Area> lsArea = basebll.GetAll<DICT_Area>();  
  40.            DICT_Area dicNew=new DICT_Area();  
  41.            dicNew.AreaText="-请选择-";  
  42.            dicNew.AreaId=0;  
  43.            lsArea.Add(dicNew);  
  44.            return Content(WebHelper.Json(lsArea));  
  45.        }  
  46.    }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值