Обычно для этого вы используете анонимный класс:
db.Products.Where(... filter ...).Select(item => new
{
Field1 = item.Field1,
Field2 = item.Field2,
});
Будут выбраны только те поля, которые вы включите.Если вы намереваетесь передать эту структуру данных другим функциям или вернуть ее, вам нужно конкретное определение класса для набора подполей, например:
class SmallerEntity
{
public something Field1;
public something Field2;
}
И вы можете инициализировать это в своем операторе Select:
db.Products.Where(... filter ...).Select(item => new SmallerEntity
{
Field1 = item.Field1,
Field2 = item.Field2,
});
Я не рекомендую практиковать половину существующего класса.Это делает ваше пространство состояний излишне сложным и допускает больше ошибок в вашем коде.Старайтесь содержать меньшие подмножества данных в своих собственных классах.