Я пытаюсь найти наиболее эффективный способ решить эту проблему:Linq Conditional Include
Я извлекаю файл из базы данных. Если FileSize меньше 10 МБ, я хочу включить FileContent, в противном случае он останется пустым. Мой код по праву сейчас:
var z = QuerySet.AsQueryable();
File f = z.FirstOrDefault(item => item.Id == id && item.FileSize >= 1024 * 1024 * 10);
if (f != null) return f;
return z.Include(a => a.FileContent)
.FirstOrDefault(item => item.Id == id);
Итак, я запрашиваю, чтобы найти, если это мой файл (соответствует Id), и если это большой файл. Если это так, верните файл. В противном случае повторите запрос, но включите содержимое файла. Есть ли более эффективный способ достичь этого?
Nice, лаконичный и прекрасно работает. – hsimah