Да, это возможно, если вы используете LINQ to SQL. Все, что вам нужно сделать, это использовать проекцию, чтобы извлечь нужные данные в выбранный вами объект. Вам не нужно все это оформление с интерфейсами и еще много чего - если вы используете модель, специфичную для представления (что звучит так, как вам нужно) - создайте класс ViewModel.
Давайте назовем это ProductSummaryView:
public class ProductSummaryView{
public string Name {get;set;}
public decimal Price {get;set;}
}
Теперь загрузите его из хранилища:
var products= from p in _repository.GetAllProducts
where p.Price > 100
select new ProductSummaryView {
Name=p.ProductName,
Price=p.Price
}
Это потянет все товары, где цена> 100, и вернет IQueryable. Кроме того, поскольку вы запрашиваете только два столбца, в вызове SQL будут указаны только два столбца.