您的位置:首页 > 数据库

ef4.0和ef5.0增删改查的写法区别及执行Sql的方法

2014-03-24 17:52 381 查看
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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: