Entity Framework DBFirst Динамическая фильтрация запросов
То, что я пытаюсь достичь, это вместо того, чтобы добавлять условие where к некоторым запросам в каждом методе вручную, добавляя его автоматически.
Большинство объяснений, относящихся к этой теме, сделано в подходе Code First. До сих пор я пробовал некоторые библиотеки, такие как https://github.com/jbogard/EntityFramework.Filters, http://entityframework.dynamicfilters/. Также замечено, что в подходе DBFirst "OnModelCreating" никогда не срабатывает. Соглашения или фильтры не могут быть зарегистрированы.
Я строго избегаю использовать методы расширения, которые применяют фильтрацию, потому что у меня есть около 200 методов в коде, меняющихся там, где методы, вероятно, убьют меня.
Я инициализирую свой класс DBContext, как здесь;
BlaBlaEntities db = null;
public DeviceRepository(int? appliedCategoryID = 1)--constructor
{
db = new BlaBlaEntities();
if (appliedCategoryID.HasValue && appliedCategoryID.Value > 0)
{
//trying to apply filter here
}
}
А потом вызывать такие методы, как
public IQueryable<object> JsonGetAllDeviceType(int[] companies, int[] statusGroup)
{
var list = from d in db.DeviceType
where companyGroup.Contains(d.CompanyID) && statusGroup.Contains(d.Status)
select new { d.DeviceTypeID,d.DeviceTypeName};
return list;
}
Я надеюсь найти лучшее решение или пример, который успешно работает в DBFirst.