LINQ to Entities не распознает метод «System.Collections.Generic.IEnumerable.Zip» (ASP.NET MVC) [дубликат]

Вы можете сделать это с помощью функции reshape() или с функциями melt() / cast() в пакете reshape. Для второго варианта пример кода:

library(reshape)
cast(dat1, name ~ numbers)

Или с помощью reshape2

library(reshape2)
dcast(dat1, name ~ numbers)
88
задан Nivid Dholakia 31 August 2011 в 17:50
поделиться

1 ответ

Как вы поняли, Entity Framework не может запустить ваш код C # как часть его запроса. Он должен иметь возможность преобразовать запрос в фактический оператор SQL. Чтобы это сработало, вам придется реструктурировать выражение запроса в выражение, которое может обрабатывать Entity Framework.

public System.Linq.Expressions.Expression<Func<Charity, bool>> IsSatisfied()
{
    string name = this.charityName;
    string referenceNumber = this.referenceNumber;
    return p => 
        (string.IsNullOrEmpty(name) || 
            p.registeredName.ToLower().Contains(name.ToLower()) ||
            p.alias.ToLower().Contains(name.ToLower()) ||
            p.charityId.ToLower().Contains(name.ToLower())) &&
        (string.IsNullOrEmpty(referenceNumber) ||
            p.charityReference.ToLower().Contains(referenceNumber.ToLower()));
}
96
ответ дан StriplingWarrior 22 August 2018 в 19:09
поделиться
  • 1
    Отлично! Это именно то, что мне нужно. – Ross Brigoli 21 August 2014 в 14:03
  • 2
    когда вы сомневаетесь в поиске: stackoverflow.com/questions/2352764/… – Chris Hayes 19 February 2015 в 00:41
  • 3
    Возвращение построенного Expression<Func<T,type>> - очень хороший подход к этому. – Travis J 25 August 2017 в 22:41
  • 4
    Как вы могли бы использовать это в выражении LINQ? Я хотел бы сделать что-то подобное в качестве повторно используемого предложения Where, но боюсь его реализовать. – Zorgarath 27 October 2017 в 20:10
  • 5
    EDIT: неважно, это было бы: context.Where(IsSatisfied()) – Zorgarath 27 October 2017 в 20:39
Другие вопросы по тегам:

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