我有一個類Post
這是一個Entity Framework模型。它包含了這樣的特性:如何在LINQ-to-Entities查詢中使用自定義屬性?
public bool Showable {
get {
return this.Public && this.PublishedDate > DateTime.now
}
}
我可以用它在這樣的查詢:
from p in db.Posts where p.Showable select p;
,但是當我有一個使用它的屬性,這樣
public IEnumerable<Post> ShowablePosts {
get {
return from p in db.Posts where p.Showable select p;
}
}
那麼我做不到:
from p in ShowablePosts where p.Id > 42 select p;
它s ays:
LINQ to Entities不支持指定的類型成員'Showable'。僅支持初始化程序,實體成員和實體導航屬性。
我可以在查詢中調用計算屬性,但不能在運行查詢的方法中調用。有點奇怪。 – Pablo 2010-02-11 01:41:33
我現在生活在Linq-to-SQL的世界裏,是從'db.Posts'中返回p。可顯示select p;'本地是'IQueryable'還是'IEnuemerable '在EF中?這對他的問題有影響嗎? –
2010-02-11 01:42:54
@J。 Pablo Fernandez:當您定義Linq查詢時,只有當您執行需要實際結果的事情時才執行。 Linq支持很多事情,但實體框架不支持,而這些事情只有在執行查詢後纔會變得明顯。 – 2010-02-11 03:34:45