简体   繁体   English

使用实体框架进行常规删除和更新

[英]Generic delete and update using Entity Framework

Consider the situation: I want delete and update items from Database using Entity Framework. 考虑以下情况:我想使用实体框架从数据库中删除和更新项目。 I want to achieve it generically using LINQ to entities provided the Database context, ID of row to be deleted, column to be updated and the value to which it should be updated are already available with us. 如果数据库上下文,要删除的行的ID,要更新的列以及应将其更新为的值,我们已经可以使用LINQ对实体进行通用化实现。

How can i do it generically. 我该如何做。 Please advice. 请指教。 Thanks in advance. 提前致谢。

You can use DAO object like Repository between DB and your code, some like this 您可以在数据库和代码之间使用诸如存储库之类的DAO对象,像这样

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

And use code 并使用代码

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

Good Day, I'm not sure about the question but I'll give an idea on how to do update and delete 美好的一天,我不确定这个问题,但是我将给出有关如何进行更新和删除的想法

Update 更新资料

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

Delete 删除

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM