如何使用 C# 和实体框架的方法从动态变化的表中更新数据?

问题描述 投票:0回答:1

我正在尝试编写一个函数,该函数将表名作为参数,并使用实体框架更新相关数据项

isActive
isUpdated
属性。

这是我尝试过的:

public void FuncDelete(string tableName)
{
    // Getting data id value from a text box:
    int x = Convert.ToInt32(IDBox);

    // Trying to get the column on the related id value:
    var TBL_Name = db.tableName.Find(x);

    // Changing the attributes:
    TBL_Name.isActive = false;
    TBL_Name.isUpdated = true;
    db.SaveChanges();
}

FuncDelete(Employee);

显然这是行不通的。我是 C# 和实体框架的新手。我将不胜感激任何帮助。

c# entity-framework
1个回答
0
投票

您始终可以使用泛型:

public async Task FuncDelete<T>()
{
  int x = Convert.ToInt32(IDBox);
  var queryStream = db.Set<T>.AsQueryable();
  var o = await queryStream.Where(w => w.Id == x).FirstOrDefaultAsync();
  o.IsActive = false;
  o.IsUpdated = true;
  db.Entry(o).State = EntityState.Modified;
  await db.SaveChangesAsync();

}

然后调用它:

FuncDelete<Employee>();
© www.soinside.com 2019 - 2024. All rights reserved.