Genrics в Linq с использованием предложения Multiple Where - PullRequest
0 голосов
/ 14 марта 2019

Мне нужно написать общий метод поиска, который я мог бы использовать несколько раз. Мой метод:

public List<GoldMakers> listofRecoverd_Reuse(int? EmployeeID, DateTime? Startdate, DateTime? EndDate)
    {
    List<GoldMakers> RecoveredGold = db.GoldMakers.Include(e => e.tbl_Employees)
        .Where(x => (x.R_Employee_ID == EmployeeID || EmployeeID == null) 
        && (x.R_Date >= Startdate || Startdate == null) && (x.R_Date <= EndDate || EndDate == null)).ToList();
    return RecoveredGold;
}

Я знаю, что этого можно добиться с помощью Generics, но я не знаю, как работать с linq с помощью Generics.

public List<T> search<T>(T modelClass, int? EmployeeID, DateTime? Startdate, DateTime? EndDate)
{
    list<T> result = db.Table<T>().where ........
    return result;
} 

Спасибо.

1 Ответ

0 голосов
/ 14 марта 2019

Можете ли вы попробовать, как показано ниже:

public List<T> search<T>(DbSet<T> modelClass, int? EmployeeID, DateTime? Startdate, DateTime? EndDate)  where T : class, new()
{
    list<T> result = modelClass.where ........
    return result;
} 

Вы можете позвонить, как показано ниже

var tbl1 = search(db.table1, param1, param2, param3);
var tbl2 = search(db.table2, param1, param2, param3);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...