LINQ 查询获取运行时错误
本文关键字:运行时错误 获取 查询 LINQ | 更新日期: 2023-09-27 18:37:11
我有这个 linq 查询,并且正在使用 EF edmx。
forms = (from f in db.Forms
join ffl in db.FormFirstLetters on f.FormID equals ffl.FormID
where f.IsActive
where criteria.CategoryNames == null || criteria.CategoryNames.Contains(f.Category)
where startsWith == null || startsWith.Contains(ffl.FirstLetter)
orderby f.FormName
select new FormSummary
{
FormID = f.FormID,
Category = f.Category,
FormName = f.FormName,
AcceptSubmissions = f.AcceptSubmissions,
TodaysEntries = f.FormSubmissions.Count(tbl => tbl.SubmissionDate >= todaysDate),
TotalEntries = f.FormSubmissions.Count(),
LatestEntry = f.FormSubmissions.OrderByDescending(x => x.SubmissionDate).Select(x => x.SubmissionDate).FirstOrDefault()
}).ToArray();
我收到此错误
无法创建类型的常量值 'System.Collections.Generic.IEnumerable'1'.仅基元类型 (例如 Int32、字符串和 Guid")在此上下文中受支持。
我认为使用 Contains
是可以接受的,并且之前在这些类型的 linq 查询中多次使用它,但由于某种原因它不起作用。criteria.CategoryNames
和startsWith
都是IEnumerable<string>
的,要搜索的字段是字符串。为什么这不起作用?
其中一个列表中的值为空字符串。显然EF不知道如何将其转换为sql?哇。