我想使用EF 5检索一个对象及其过滤/有序集合属性。但是,我当前的代码抛出异常:
Include路径表达式必须引用导航属性 在类型上定义。使用虚线路径进行参考导航 属性和集合导航的Select运算符 特性
这是我想要检索的对象的类:
public class EntryCollection
{
[Key]
public int Id { get; set; }
public ICollection<Entry> Entries { get; set; }
...
}
以下是Entry
:
public class Entry
{
[Key]
public int Id { get; set; }
public DateTime Added { get; set; }
...
}
我想检索仅包含最新条目的EntryCollection
,所以这是我尝试过的代码:
using (var db = new MyContext())
{
return db.EntryCollections
.Include(ec => ec.Entries.OrderByDescending(e => e.Added).Take(5))
.SingleOrDefault(ec => ec.Foo == "bar');
}
有什么想法吗?
答案 0 :(得分:0)
你无法在include中使用OrderBy。
以下
using (var db = new MyContext())
{
return db.EntryCollections
.Where(ec => ec.Foo == "bar")
.Select(ec=> new Something{Entries = ec.Entries.OrderByDescending(e => e.Added).Take(5) }, /*some other properties*/)
.SingleOrDefault();
}
或在两个单独的查询中执行