Хорошо, возможно, это из-за того, что я не знаю, как правильно использовать ядро EF, поскольку это мой второй день использования, но мне кажется, что мне нужно запустить .Include()
, чтобы выполнить запрос к "внутреннему соединению", которое создает этот метод.
У меня есть этот бит, работающий и фильтрующий мои результаты, но я не хочу возвращать включение в модель, поскольку оно превращает ответ JSON размером 256 КБ в ответ JSON объемом 2,8 МБ.
public IEnumerable<Property> GetFeaturedProperties()
{
var properties = _db.Properties
.Include(p => p.GeoInfo)
.Include(p => p.FeaturedUntil)
.ToArray();
var featuredProperties = new List<Property>();
var DateTimeNow = DateTime.Now;
var midnightToday = DateTimeNow.AddHours(-DateTimeNow.Hour)
.AddMinutes(-DateTimeNow.Minute)
.AddSeconds(-DateTimeNow.Second-1);
for (var i = 0; i < properties.Count(); i++)
{
var property = properties[i];
if(property.FeaturedUntil.Any(p => p.FeaturedDate >= midnightToday))
featuredProperties.Add(property);
}
return featuredProperties;
}
Итак, оскорбительная строка .Include(p => p.FeaturedUntil)
.Так как это массив дат, который может содержать от 10 до 1000 строк на соединенную строку.Он включает в себя ВСЕ данные, даже исторические, так что это действительно мучительные данные.
Могу ли я выполнить свой запрос и затем запустить что-нибудь для .RemoveInclude(p => p.FeaturedUntil)
?