1) Вам необходимо создать репозиторий для принятия вашего TEntity
в качестве универсальной сущности класса, и в этом репозитории вы должны создать один метод, который может извлекать только те столбцы из таблицы базы данных, которые Вы указаны в Select
предикате выражения.
public class Repository<TEntity> where TEntity : class
{
private readonly DbContext _context;
public Repository(DbContext context)
{
_context = context;
}
public List<TResult> GetEntities<TResult>(Expression<Func<TEntity, TResult>> selector) where TResult : class
{
return _context.Set<TEntity>().Select(selector).ToList();
}
}
2) И затем, используя вышеуказанный репозиторий, вы можете передавать из вашей сущности Product
только те свойства, которые вы хотите получить, например
Repository<Product> repository = new Repository<Product>(new MySqlDbContext());
var anonymousResultSet = repository.GetEntities(x => new { x.Name, x.Cost }); //<= Here you can specify those columns that you want to retrieve.
return anonymousResultSet;