我想用控制器列出一些食品。我在UnitOfWork中使用Repository模式作爲另一個程序集中的數據,並在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支持,以 實體只有初始值設定項,實體成員和實體導航 屬性均受支持。「
我DiaryEntries成員在視圖模型是
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()'。 –
如何在FoodItem中定義DiaryEntries? – sachin
什麼是IRepository?該消息明確指出它應該是導航屬性。 –