У меня есть этот список TableInfo и этот универсальный класс, который имеет метод удаления
public class TableInfo {
string TableName
string ColumnName
string FilterValue
}
public class BaseEntityManager<TTableEntity> where TTableEntity : class, IBaseEntity, new()
{
public BaseEntityManager(DatabaseContext databaseContext, DbSet<TTableEntity> dbSet, string tableName)
{//contructor initialize}
public void DeleteMethod(int id){ }
}
//TTableEntity rappresent the class used for specific dbset
public virtual DbSet<User> Users { get; set; }
, и мне нужно
- получить элемент из tablename с columnName равно filtervalue (это можно сделать с помощью dbset.FromRawSql (), если вы знаете, как получить dbset)
- создать экземпляр baseEntityManager, используя классdbSet table
- запустить deleteMethod из менеджера
// пример
foreach(var table in list)
{
//from dbContext.CorrectDbSet
var items = "select * from {table.TableName} where {table.ColumnName} = table.FilterValue"
foreach(var toDelete in items)
{
var baseMgr = new BaseEntityManager<'Class_of_dbSet_Type'>();
basemgr.Delete(toDelete.id );
}
}
// пример управления пользователем
public virtual DbSet<User> Users //getset
var userManager = new BaseEntityManager<User>(_dbContext, _dbContext.Users, "tbl_users")