0

我有这个 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.CategoryNamesand startsWithareIEnumerable<string>和要搜索的字段都是字符串。为什么这不起作用?

4

1 回答 1

0

在其中一个列表中有一个值为空字符串的值。显然 EF 不知道如何将其转换为 sql?哇。

于 2012-06-14T02:48:39.270 回答