Я пытаюсь перечислить некоторые продукты питания с помощью контроллера. Я использую шаблон репозитория с UnitOfWork для данных в другой сборке и ссылаюсь на него в BaseApiController. Значение Data - это мой экземпляр UnitOfWork.EF - не поддерживается в LINQ to Entities
var result = Data.Food
.FindAll()
.Select(FoodItemViewModel.Create);
return result;
и вот мой ViewModel:
public static Expression<Func<FoodItem, FoodItemViewModel>> Create
{
get
{
return fi => new FoodItemViewModel
{
Id = fi.Id,
Description = fi.Description,
DiaryEntries = fi.DiaryEntries
.Select(s => new DiaryEntityViewModel()
{
Id = s.Id,
Quantity = s.Quantity
}
};
}
}
Но все это я получаю:.
« 'DiaryEntries' Указанный член типа не поддерживается в LINQ к Entities только инициализаторы, сущности и сущность навигации. Поддерживаются свойства . "
Мой DiaryEntries член в ViewModel является
IEnumerable<DiaryEntityViewModel>
и мой член DiaryEntries в экземпляре данных является
IRepository<DiaryEntry>
и DiaryEntry моя модель класса
и вот мой FoodItem класс модели:
public class FoodItem
{
private IEnumerable<Measure> measures;
private IEnumerable<DiaryEntry> diaryEntries;
public FoodItem()
{
this.measures = new HashSet<Measure>();
this.diaryEntries = new HashSet<DiaryEntry>();
}
public int Id { get; set; }
public string Description { get; set; }
public virtual IEnumerable<DiaryEntry> DiaryEntries
{
get
{
return this.diaryEntries;
}
set
{
this.diaryEntries = value;
}
}
public virtual IEnumerable<Measure> Measures
{
get
{
return this.measures;
}
set
{
this.measures = value;
}
}
}
Что вы пытаетесь сделать здесь? Я думаю, что ваша проблема может заключаться в том, что вы передаете функцию в БД. Попробуйте использовать '.ToList()' перед его выбором. –
Как определяется DiaryEntries в FoodItem? – sachin
А что такое 'IRepository'? В сообщении четко указано, что это должно быть свойство навигации. –