【问题标题】:Generic delete and update using Entity Framework使用实体框架进行通用删除和更新
【发布时间】:2016-03-01 08:47:46
【问题描述】:
考虑以下情况:
我想使用实体框架从数据库中删除和更新项目。如果数据库上下文、要删除的行的 ID、要更新的列以及应该更新的值已经可用,我想一般使用 LINQ to 实体来实现它。
我一般怎么做。请指教。提前致谢。
【问题讨论】:
标签:
c#
entity-framework
linq
【解决方案1】:
您可以在 DB 和您的代码之间使用像 Repository 这样的 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();
}
}
并使用代码
Dao<someClass> daoClass = new Dao<someClass>(new dbContext());
daoClass.DeleteById(5);
daoClass.Update(someClass);
【解决方案2】:
美好的一天,我不确定这个问题,但我会提供有关如何更新和删除的想法
更新
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();
}
}