ビューで MVC プラットフォームと jqGrid を使用しています。以下はコントローラーコードの一部で、json をグリッドに返します
IQueryable<CalendarViewModel> callendars =
from call in (new KYTCDataContext()).Calendars
where call.AcademicYear == id
select Matcher.Calendar(call);
if (jqGridParameters._search != false)
{
callendars = callendars.Where(jqGridParameters.WhereClause);
}
if (jqGridParameters.sidx != null)
callendars = callendars.OrderBy(
jqGridParameters.sidx.Substring(8) + " " + jqGridParameters.sord.ToLower());
var count = callendars.Count();
int pageIndex = jqGridParameters.page;
Matcher は静的クラスです。以下はクラスの使用メソッドです
public static class Matcher
{
public static CalendarViewModel Calendar(Calendar call)
{
return new CalendarViewModel
{
ID = call.ID,
Name = call.Name,
StartDate = call.StartDate,
EndDate = call.EndDate,
AcademicYear = call.AcademicYear
};
}
}
ラインで
var count = callendars.Count();
私はこのエラーを受け取ります:
メソッド 'KYTC.Models.CalendarViewModel Calendar(KYTC.Data.Calendar)' には、サポートされている SQL への変換がありません。
しかし、LINQクエリをこれに変更すると:
IQueryable<CalendarViewModel> callendars =
from call in (new KYTCDataContext()).Calendars
where call.AcademicYear == id
select new CalendarViewModel
{
ID = call.ID,
Name = call.Name,
StartDate = call.StartDate,
EndDate = call.EndDate,
AcademicYear = call.AcademicYear
};
私のコードはうまく動作しています。
クラス定義の何が問題になっていますか?