Вы можете использовать выражение для этого:
private IList<Tout> GetDistinctListOfProperty<Ttable, Tout>(Expression<Func<Ttable, Tout>> returnField) where Ttable : class
{
using (var db = new ApplicationDbContext())
{
return db.Set<Ttable>().Select(returnField).Distinct().ToList();
}
}
Вам нужно заключить Func
в Expression
, чтобы сущность могла перевести его в действительный sql.Эта версия позволяет вам использовать intellisense при выборе вашего параметра.Вы бы назвали это так:
var result = GetDistinctListOfProperty<YourTableType>(x => x.YourProperty);
Эта версия будет работать на каждой таблице, известной вашему ApplicationDbContext