Ich habe ein Problem mit Linq zu Entitäten, für die ich keine Problemumgehung finden kann.LINQ to Entities erkennt die Methode nicht
Dies ist mein Code:
var queryResult = result.Where(x => x.FollowedUp.Value.GetWeekFromDateTime()
== DateTime.Now.GetWeekFromDateTime()).Select(x => x);
und meine Erweiterung Methode ist:
public static int GetWeekFromDateTime(this DateTime date)
{
return System.Threading.Thread.CurrentThread.CurrentCulture.Calendar.GetWeekOfYear(date, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);
}
Problem:
Ich erhalte „LINQ to Entities nicht erkennen Sie die Methode GetWeekFromDateTime "und Ich verstehe, warum, weil es versucht, meinen Code in SQL-Code zu übersetzen und "GetWeekFromDateTime" nicht existiert. Aber wie mache ich das? Ich möchte die Wochennummer von dem Datum, das ich von meiner Datenbank erreiche, mit dieser Wochennummer vergleichen.
Vielen Dank!
Hmm das FollowedUp Feld nicht habe einen Index dafür. Es ist ein DateTime-Feld – syncis
Ein Feld, das Sie suchen, sollte auch entsprechende Index (e) haben. Sonst machen Sie einen Table-Scan. Wenn es sich nicht um eine sehr kleine Tabelle handelt, ist es mit einem Index für das Feld "FollowedUp" besser, zumindest für die bestimmte Abfrage, die ich empfehle. –