EF4.0和EF5.0增删改查的写法区别 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);