Чтобы отфильтровать список элементов, я использую тип связанного свойства, подобного этому.
var list = Context.Items
.Include(_ => _.Details)
.Where(_ => _.Details.Kind == kind));
return list;
Возвращает полный список, отфильтрованный по kind , что в данном случае довольно плохо, поскольку свойство Details большое, точно дублируется в каждом возвращаемом элементе (нет двух подробностей о один и тот же вид может отличаться) и список предметов может быть довольно длинным.
Итак, при использовании kind в Details для фильтрации правильного подмножества элементов, я хочу, чтобы поле было пустым при его возврате. Один из способов решить эту проблему - получить идентификаторы всех предметов, а затем выбрать на основе этого. Кажется неэффективным и медленным. Другой способ - перенести направляющую в класс Item и использовать ее для фильтрации. Это кажется дублирующим и навязчивым для модели данных.
Есть ли аккуратный способ отбросить включенные свойства?
Я подумываю об эквивалентном следующем (не работающем, безобразном) образце.
var list = Context.Items
.Include(_ => _.Details)
.Where(_ => _.Details.Kind == kind));
return list.Forget(_ => _.Details);