Рассмотрим следующий пример:
public List<Allergy> GetAllergies(int? ingredientId = null)
{
var allergies = new List<Allergy>();
var preSelect = ingredientId != null
? _dataContext.Ingredients.Where(x=> x.Id == ingredientId).SelectMany(x=>x.Allergies.AsQueryable())
: _dataContext.Allergies.AsQueryable();
preSelect.ToList().ForEach(x =>
{
var a = Mapper.Map<Database.Allergy, Allergy>(x);
allergies.Add(a);
});
return allergies;
}
Это работает, но я считаю, что можно избавиться от проверяющей ноль части и получить все ингредиенты, если ingredientId
равно нулю прямо в теле Where()
.Как мы можем сделать это?Также будут приветствоваться любые другие предложения по улучшению этого кода.