- 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);