zoukankan      html  css  js  c++  java
  • 数据库连接LinqHelper

    一个关于linq的操作类

      1 /// <summary>
      2      /// Linq通用数据访问类
      3      /// 指定TDataBase来代替后面要使用的数据上下文(指代)
      4      /// where:说明指代的类型
      5      /// new:限定必须有一个不带参数的构造函数
      6      /// </summary>
      7      /// <typeparam name="TDataBase"></typeparam>
      8      public class LinqHelper<TDataBase> where TDataBase : DataContext, new()
      9      {
     10          private static string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
     11          TDataBase db = null;
     12          /// <summary>
     13          /// 创建数据库连接
     14          /// </summary>
     15          public LinqHelper()
     16          {
     17              db = new TDataBase();
     18              db.Connection.ConnectionString = connectionString;
     19          }
     20  
     21          /// <summary>
     22          /// 获取所有数据
     23          /// </summary>
     24          /// <typeparam name="T"></typeparam>
     25          /// <returns></returns>
     26          public List<T> GetList<T>() where T : class
     27          {
     28              return db.GetTable<T>().ToList();
     29          }
     30  
     31          /// <summary>
     32          /// 按条件查询
     33          /// </summary>
     34          /// <typeparam name="T"></typeparam>
     35          /// <param name="predicate">Lambda表达式</param>
     36          /// <returns></returns>
     37          public List<T> GetList<T>(Expression<Func<T, bool>> predicate) where T : class
     38          {
     39              return db.GetTable<T>().Where(predicate).ToList();
     40          }
     41  
     42          /// <summary>
     43          /// 获取实体
     44          /// </summary>
     45          /// <typeparam name="T"></typeparam>
     46          /// <param name="predicate"></param>
     47          /// <returns></returns>
     48          public T GetEntity<T>(Expression<Func<T, bool>> predicate) where T : class
     49          {
     50              return db.GetTable<T>().Where(predicate).FirstOrDefault();
     51          }
     52  
     53          /// <summary>
     54          /// 添加实体
     55          /// </summary>
     56          /// <typeparam name="T"></typeparam>
     57          /// <param name="entity"></param>
     58          public void InsertEntity<T>(T entity) where T : class
     59          {
     60              try
     61              {
     62                  //将对象保存到上下文当中
     63                  db.GetTable<T>().InsertOnSubmit(entity);
     64                  //提交更改
     65                  db.SubmitChanges();
     66              }
     67              catch (Exception ex)
     68              {
     69                  throw new Exception(ex.Message);
     70              }
     71          }
     72  
     73          /// <summary>
     74          /// 修改实体
     75          /// </summary>
     76          /// <typeparam name="T"></typeparam>
     77          /// <param name="entity"></param>
     78          public void UpdateEntity<T>(T entity) where T : class
     79          {
     80              try
     81              {
     82                  //将新实体附加到上下文
     83                  db.GetTable<T>().Attach(entity);
     84                  //刷新数据库
     85                  db.Refresh(RefreshMode.KeepCurrentValues, entity);
     86                  //提交更改
     87                  db.SubmitChanges(ConflictMode.ContinueOnConflict);
     88              }
     89              catch (Exception ex)
     90              {
     91                  throw new Exception(ex.Message);
     92              }
     93          }
     94  
     95          /// <summary>
     96          /// 删除实体
     97          /// </summary>
     98          /// <typeparam name="T"></typeparam>
     99          /// <param name="predicate"></param>
    100          public void DeleteEntity<T>(Expression<Func<T, bool>> predicate) where T : class
    101          {
    102              try
    103              {
    104                  //获取要删除的实体
    105                  var entity = db.GetTable<T>().Where(predicate).FirstOrDefault();
    106                  if (entity == null) return;
    107                  db.GetTable<T>().DeleteOnSubmit(entity);
    108                  db.SubmitChanges(ConflictMode.ContinueOnConflict);
    109              }
    110              catch (Exception ex)
    111              {
    112                  throw new Exception(ex.Message);
    113              }
    114          }
    115      }
    View Code

    很久很久以前,谎言和真实在河边洗澡。谎言先洗好,穿了真实的衣服离开,真实却不肯穿谎言的衣服。后来,在人们的眼里,只有穿着真实衣服的谎言,却很难接受赤裸裸的真实。

  • 相关阅读:
    HTML5学习笔记第二节(Email标签(自动验证格式),Number标签,URL标签...)
    Ping检测工具(QQ皮肤实现)
    C#多线程|匿名委托传参数|测试您的网站能承受的压力|附源代码
    PostgreSQL抛错“不良的类型值: long”之解决
    jdbcTemplate.queryForInt()过时替换方法
    Windows Phone 实用开发技巧(27):创建透明Tile
    快乐技术沙龙技术分享之账户助手
    Windows Phone 实用开发技巧(11):让StackPanel中的控件靠右对齐
    Windows Phone 实用开发技巧(19):使用ProgressIndicator做进度显示
    Windows Phone 实用开发技巧(13):自定义Element Binding
  • 原文地址:https://www.cnblogs.com/jiaxa/p/3015165.html
Copyright © 2011-2022 走看看