Ситуация простая. Есть метод GetData. Он получает все данные из БД и возвращает их.
public List<UserData> GetData(int FL)
{
string sql = string.Format(@"SELECT id, guid, username, userblob, ""FL"" FROM ""USERS"" WHERE ""FL""={0};", FL);
...
UserData ud = new UserData();
ud.Id = dr[0].ToString();
ud.Guid = (dr[1].ToString());
ud.Name = (dr[2].ToString());
ud.UserBlob = (byte[])dr[3];
ud.FL = dr[4].ToString();
uds.Add(ud);
...
return uds;
}
Однако у меня возникла потребность вызывать его передавая ему другую SQL команду `SELECT WHERE IN`.
Передавать ее в виде строки не могу т.к. у меня БД определены как абстракция:
TargetDbContext = DbContextFactory.GetDbContext(_config.FirstDataBase);
TransitDbContext = DbContextFactory.GetDbContext(_config.TransitDataBase);
Просто для каждой из используемых БД реализован свой метод: GetData и хотелось бы сам запрос определять в самом методе, а не передавать его снаружи. Как такое можно сделать?