LINQ к Объектам для вычитания 2 дат

Вы не можете использовать массив для инициализации другого массива. И вы не можете использовать присваивание между массивами.

Единственный способ - сделать явное копирование из одного массива в другой. А для байтовых строк с нулевым символом в конце тогда обычным способом мы проходим через strcpy :

char str1[100] = "This is a string";
char temp[100];

strcpy(temp, str1);

И чтобы получить правильное объявление strcpy, вы должны включить . Этого нельзя избежать (если только вы не хотите написать свою strcpy -подобную функцию, против которой я настоятельно рекомендую).

Конечно, вы также можете скопировать весь массив, включая все неинициализированное содержимое, используя memcpy , но это также объявлено в .

58
задан Justin 31 March 2011 в 07:09
поделиться

3 ответа

Вот то, как я заставил это работать

, я определил переменную даты и времени, которая представляет самую старую дату

DateTime oldestDate = DateTime.Now.Subtract(new TimeSpan(maxAgeInDays, 0, 0, 0, 0));
...

затем, я изменил, где часть запроса LINQ

where (vid.CreatedDate >= oldestDate )

работала как очарование - благодарен за то, что Micah заставляет меня думать о дереве выражений

42
ответ дан Justin 24 November 2019 в 18:41
поделиться

Вы сталкиваетесь с подобными сестрами, потому что предикат должен быть переведен в дерево выражений. И процесс перевода не распознает DateTime. Теперь. Вычтите метод.

11
ответ дан Micah 24 November 2019 в 18:41
поделиться

Дело в том, что изначально LINQ to Entities должен преобразовывать весь запрос в операторы SQL. Вот где он не может распознать метод Subtract. Это произойдет всякий раз, когда вы попытаетесь использовать метод C # / VB внутри запроса. В этих случаях вам нужно найти способ выделить эту часть из запроса. В этом сообщении объясняется немного больше: http://mosesofegypt.net/post/LINQ -to-Entities-what-is-not-supported.aspx

1
ответ дан 24 November 2019 в 18:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: