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);
 
EF4.0和EF5.0增删改查的写法区别及执行Sql的方法
原文:http://www.cnblogs.com/jimcsharp/p/4785072.html