回答

收藏

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
    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则