我有这个 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、String 和 Guid”)。
我认为 usingContains
是可以接受的,并且之前在这些类型的 linq 查询中使用过很多次,但由于某种原因它不起作用。criteria.CategoryNames
and startsWith
areIEnumerable<string>
和要搜索的字段都是字符串。为什么这不起作用?