加入收藏 | 设为首页 | 会员中心 | 我要投稿 莱芜站长网 (https://www.0634zz.com/)- 云连接、建站、智能边缘云、设备管理、大数据!
当前位置: 首页 > 编程开发 > asp.Net > 正文

Entity Framework使用DBContext实现增删改查

发布时间:2023-02-17 10:15:06 所属栏目:asp.Net 来源:互联网
导读:1. 不要Code first, 也不要DB first 我为什么讨厌Code first和DB first呢?首先Code first是先写代码,数据库完全由代码生成,开发阶段尚可,一旦到了产品发布阶段,如果需要添加字段,我们总不能用 visual studio去生产环境上去更新数据库吧,听起来就很可

  
          context.SaveChanges();
      }
  }
  
  
  public static Destination Query(int destId)
  {
      using (var context = new BreakAwayContext(ConfigurationManager.ConnectionStrings["BAContext"].ConnectionString))
      {
          IQueryable<Destination> dest = context.Destinations.Where(a => a.DestinationId == destId);
  
          return dest.Single();
      }
  }
  4. 如果需要多个操作同时成功或者失败,需要手动开启事务,具体代码如下,

  public static void TransactionOps()
  {
      using (var context = new BreakAwayContext(ConfigurationManager.ConnectionStrings["BAContext"].ConnectionString))
      {
          using (var dbContextTransaction = context.Database.BeginTransaction())
          {
              try
              {
                  var destination = new Destination
                  {
                      Country = "Chs",
                      Description = "Chs is the language package",
                      Name = "xs2s"
                  };
  
                  var destId = context.Destinations.Add(destination);
  
                  context.SaveChanges();
  
                  context.Destinations.Attach(destId);
                  context.Destinations.Remove(destId);
  
                  context.SaveChanges();
  
                  dbContextTransaction.Commit();
              }
              catch (System.Exception ex)
              {
                  dbContextTransaction.Rollback();
                  System.Console.WriteLine(ex.ToString());
              }
          }
      }
  }
  5. 分页查询是网站设计的常用功能,一个简单的真分页查询方法如下如下所示,

  public static List<Destination> QueryPaging<TKey>(int pageIndex, int pageSize, Expression<Func<Destination, bool>> whereLambda, Expression<Func<Destination, TKey>> orderBy)
  {
      using (var context = new BreakAwayContext(ConfigurationManager.ConnectionStrings["BAContext"].ConnectionString))
      {
          return context.Destinations.Where(whereLambda).OrderBy(orderBy).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();
      }
  }

(编辑:莱芜站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读