使用实体框架

时间:2016-03-01 08:47:46

标签: c# entity-framework linq

考虑一下情况: 我想使用Entity Framework从数据库中删除和更新项目。我想一般使用LINQ实现它实现它提供了数据库上下文,要删除的行的ID,要更新的列以及它应该更新的值已经可用。

我怎么能一般地做到这一点。请指教。提前谢谢。

2 个答案:

答案 0 :(得分:1)

您可以在数据库和代码之间使用 DAO 对象,例如Repository,有些像这样

public class Dao<T> : where T:class {
    internal virtual DbSet<T> EntitySet {
        get {
            return DB.Set<T>();
        }
    }

    public void DeleteById(int id) {
        T instance = FindById(id);
        Delete(instance);
    }


    public void Update(T instance) {
        DB.Entry(instance).State = EntityState.Modified;
        DB.SaveChanges();
    }
}

并使用代码

Dao<someClass> daoClass = new Dao<someClass>(new dbContext());
daoClass.DeleteById(5);
daoClass.Update(someClass);

答案 1 :(得分:0)

美好的一天,我不确定这个问题,但我会就如何进行更新和删除提出建议

更新

 using (var db = new DbContext())
 {
    var tobeupdatedrow = db.TableNames.FirstOrDefault(b => b.Id== Id);
    if (tobeupdatedrow != null)
    {
        tobeupdatedrow.tobeupdatedcolumn = "Some new value";
        db.SaveChanges();
    }
 }

删除

using (var db = new DbContext())
 {
    var tobedeletedrow = db.TableNames.FirstOrDefault(b => b.Id== Id);
    if (tobedeletedrow != null)
    {
        db.TableNames.Remove(tobedeletedrow);
        db.SaveChanges();
    }
 }