ef4.0写法

来源:互联网 发布:什么软件可以看舰娘 编辑:程序博客网 时间:2024/06/05 10:24

  1.   
  2. EF4.0和EF5.0增删改查的写法区别  
  3. public T AddEntity(T entity)   
  4. {  
  5.     //EF4.0的写法    
  6.     添加实体  
  7.     //db.CreateObjectSet<T>().AddObject(entity);  
  8.     //EF5.0的写法  
  9.     db.Entry<T>(entity).State = EntityState.Added;  
  10.     //下面的写法统一  
  11.     db.SaveChanges();  
  12.     return entity;  
  13. }  
  14. public bool UpdateEntity(T entity)  
  15. {  
  16.     //EF4.0的写法  
  17.     //db.CreateObjectSet<T>().Addach(entity);  
  18.     //db.ObjectStateManager.ChangeObjectState(entity, EntityState.Modified);  
  19.     //EF5.0的写法   
  20.    db.Set<T>().Attach(entity);   
  21.    db.Entry<T>(entity).State = EntityState.Modified;   
  22.    return db.SaveChanges() > 0;   
  23. }  
  24. public bool DeleteEntity(T entity)  
  25. {  
  26.     //EF4.0的写法   
  27.    //db.CreateObjectSet<T>().Addach(entity);  
  28.    //db.ObjectStateManager.ChangeObjectState(entity, EntityState.Deleted);  
  29.    //EF5.0的写法  
  30.    db.Set<T>().Attach(entity);  
  31.    db.Entry<T>(entity).State = EntityState.Deleted;  
  32.    return db.SaveChanges() > 0;  
  33. }  
  34.   
  35. public IQueryable<T> LoadEntities(Func<T, bool> whereLambda)  
  36. {  
  37.     //EF4.0的写法  
  38.     //return db.CreateObjectSet<T>().Where<T>(whereLambda).AsQueryable();  
  39.     //EF5.0的写法  
  40.     return db.Set<T>().Where<T>(whereLambda).AsQueryable();  
  41. }  
  42. 执行SQL语句  
  43. //EF4.0的写法  
  44. //int ExcuteSql(string strSql, ObjectParameter[] parameters);  
  45. return EFContextFactory.GetCurrentDbContext().ExecuteFunction(strSql, parameters);  
  46. //EF5.0的写法  
  47.  int ExcuteSql(string strSql, DbParameter[] parameters);  
  48. return DEFContextFactory.GetCurrentDbContext().ExecuteSqlCommand(strSql, parameters);