Entity Framework查询中的自定义函数有时会正确翻译,有时会不正确
技术问答
283 人阅读
|
0 人回复
|
2023-09-12
|
我有这个功能:
- ]5 I) V) ]; N) o5 y# x Hpublic static IQueryable WhereArticleIsLive(this IQueryable q){ return q.Where(x => x != null && DateTime.UtcNow >= x.PublishTime && x.IsPublished && !x.IsDeleted);}在此查询中工作正常:, l% k5 G3 Y, q, z1 ~( D- q
from a in Articles.WhereArticleIsLive()where a.Id == 5select new { a.Title }但这在稍微复杂的查询中不起作用:' Z$ e5 s+ I! ^& B6 ^) v! E$ T$ B( k
from s in Seriesfrom a in Articles.WhereArticleIsLive()where s.Id == a.SeriesIdselect new { s,a }我收到了这个错误的消息:9 }/ V. k- |6 r4 z
NotSupportedException:LINQ to Entities无法识别方法’System.Linq.IQueryable
9 I" C! `( E2 i1[TheFraser.Data.Articles.Article]WhereArticleIsLive(System.Linq.IQueryable1
! K) T; S8 p) A7 K% s[TheFraser.Data.Articles.Article])该方法不能转换为商店表达式。/ O S# c4 m" `: [9 Y" H
你知道为什么吗?还有另一种合并查询参数的方法吗?% f9 r# Z5 O2 R* i; m% d. j* X
提前致谢。
! r- Y1 Z8 n; U) `7 @# n: r " k3 ~& X2 f+ W( ?: P
解决方案: |
|
|
|
|
|