zoukankan      html  css  js  c++  java
  • ef4.0和ef5.0增删改查的写法区别及执行Sql的方法

    public T AddEntity(T entity) 
    {
        //EF4.0的写法  
        添加实体
        //db.CreateObjectSet<T>().AddObject(entity);
        //EF5.0的写法
        db.Entry<T>(entity).State = EntityState.Added;
        //下面的写法统一
        db.SaveChanges();
        return entity;
    }
    public bool UpdateEntity(T entity)
    {
        //EF4.0的写法
        //db.CreateObjectSet<T>().Addach(entity);
        //db.ObjectStateManager.ChangeObjectState(entity, EntityState.Modified);
        //EF5.0的写法 
       db.Set<T>().Attach(entity); 
       db.Entry<T>(entity).State = EntityState.Modified; 
       return db.SaveChanges() > 0; 
    }
    public bool DeleteEntity(T entity)
    {
        //EF4.0的写法 
       //db.CreateObjectSet<T>().Addach(entity);
       //db.ObjectStateManager.ChangeObjectState(entity, EntityState.Deleted);
       //EF5.0的写法
       db.Set<T>().Attach(entity);
       db.Entry<T>(entity).State = EntityState.Deleted;
       return db.SaveChanges() > 0;
    }

    public IQueryable<T> LoadEntities(Func<T, bool> whereLambda)
    {
        //EF4.0的写法
        //return db.CreateObjectSet<T>().Where<T>(whereLambda).AsQueryable();
        //EF5.0的写法
        return db.Set<T>().Where<T>(whereLambda).AsQueryable();
    }
    执行SQL语句
    //EF4.0的写法
    //int ExcuteSql(string strSql, ObjectParameter[] parameters);
    return EFContextFactory.GetCurrentDbContext().ExecuteFunction(strSql, parameters);
    //EF5.0的写法
     int ExcuteSql(string strSql, DbParameter[] parameters);
    return DEFContextFactory.GetCurrentDbContext().ExecuteSqlCommand(strSql, parameters);
  • 相关阅读:
    [SDOI2015] 序列统计
    [BZOJ3514] Codechef MARCH14 GERALD07加强版
    [CF1082E] Increasing Frequency
    [CF1093G] Multidimensional Queries
    [HNOI2013] 切糕
    [HEOI2017] 寿司餐厅 + 最大权闭合子图的总结
    [BZOJ3771] Triple
    [HEOI2016] 字符串
    [总结] 后缀数组学习笔记
    [Luogu 3613] 睡觉困难综合征
  • 原文地址:https://www.cnblogs.com/houzuofeng/p/3621459.html
Copyright © 2011-2022 走看看