![](/img/trans.png)
[英]EF 4: The specified type member '*' is not supported in LINQ to Entities
[英]EF - not supported in LINQ to Entities
我試圖用控制器列出一些食品。 我將Repository模式與UnitOfWork一起用於另一個程序集中的數據,並在BaseApiController中引用它。 Data屬性是我的UnitOfWork實例。
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
}
};
}
}
但我得到的只是:
“LINQ to Entities不支持指定的類型成員'DiaryEntries'。僅支持初始值設定項,實體成員和實體導航屬性。”
我在ViewModel中的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;
}
}
}
將FoodItem
類更改為下面的類, IEnumerable<T>
不支持作為導航集合的類型 :
public class FoodItem
{
public FoodItem()
{
this.Measures = new HashSet<Measure>();
this.DiaryEntries = new HashSet<DiaryEntry>();
}
public int Id { get; set; }
public string Description { get; set; }
public virtual ICollection<DiaryEntry> DiaryEntries
{
get;
set;
}
public virtual ICollection<Measure> Measures
{
get;
set;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.