我這是爲了篩選基於ID的集合可查詢的對象(IQueryable的)的擴展方法....堆棧溢出的LINQ to SQL和包含關鍵字
注意IQueryable的是從我的來源經由LinqToSql請求數據庫
public static IQueryable<NewsItemSummary> WithID(this IQueryable<NewsItemSummary> qry, IQueryable<Guid> Ids)
{
return from newsItemSummary in qry
where Ids.Contains(newsItemSummary.ID)
select newsItemSummary;
}
如果IDS從數組或列表被創建並傳過來的可查詢列表,它不工作
例如...
GetNewsItemSummary().WithID(ids.AsQueryable<Guid>())
如果ID由一個LinqToSql請求組成,它是否工作!
這是已知的問題: http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=355026
我的IDS收集不能來自LinqToSql請求......
注意,如果我改變了功能,因此它消耗和IList的,而不是一個IQueryable .. ..
public static IQueryable<NewsItemSummary> WithID(this IQueryable<NewsItemSummary> qry, IList<Guid> Ids)
{
return from newsItemSummary in qry
where Ids.Contains(newsItemSummary.ID)
select newsItemSummary;
}
我現在得到以下異常:
Method 'Boolean Contains(System.Guid)' has no supported translation to SQL.
所以...我想要做的就是根據Guid的列表或數組過濾我的新聞集合....想法?
大家知道,「stackoverflow」標籤通常用於元問題,而「stack-overflow」標籤更適合實際的堆棧溢出。 – Zifre 2009-06-07 15:57:17