我需要编写一种通用搜索方法,可以多次使用。我的方法是:
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;
}
我知道可以使用泛型来实现,但是我不知道如何使用泛型来使用linq。
public List<T> search<T>(T modelClass, int? EmployeeID, DateTime? Startdate, DateTime? EndDate)
{
list<T> result = db.Table<T>().where ........
return result;
}
谢谢。
答案 0 :(得分:0)
您可以尝试以下方法吗:
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);