この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 など) のみがサポートされます。
使用は許容できると思いContains
、これらのタイプの linq クエリで以前に何度も使用しましたが、何らかの理由で機能していません。criteria.CategoryNames
とstartsWith
は両方とも、IEnumerable<string>
検索対象のフィールドは文字列です。なぜこれが機能しないのですか?