Не удается преобразовать лямбда-выражение В тип 'string', потому что это не тип делегата [дубликат]
этот вопрос уже есть ответ здесь:
Entity Framework-не удается преобразовать лямбда-выражение В тип 'string', поскольку это не тип делегата
14 ответов
Я использую лямбда-выражение LINQ вот так:
int Value = 1;
qryContent objContentLine;
using (Entities db = new Entities())
{
objContentLine = (from q in db.qryContents
where q.LineID == Value
orderby q.RowID descending
select q).FirstOrDefault();
}
однако, я получаю следующую ошибку:
не удается преобразовать лямбда-выражение для типа 'string', потому что это не тип делегата
5 ответов:
Я думаю, что вы пропали без вести
using System.Linq;из этого системного класса., а также добавить
using System.Data.Entity;код
мой случай он решил, что я использовал
@Html.DropDownList(model => model.TypeId ...)используя
@Html.DropDownListFor(model => model.TypeId ...)разрешим его
Если это не связано с отсутствием директив использования, указанных другими пользователями, это также произойдет, если есть еще одна проблема с вашим запросом.
посмотрите на список ошибок компилятора VS : Например, если переменная " Value "в вашем запросе не существует, у вас будет ошибка" lambda to string " и несколько ошибок после другой, связанных с неизвестным/ошибочным полем.
в вашем случае это может быть :
objContentLine = (from q in db.qryContents where q.LineID == Value orderby q.RowID descending select q).FirstOrDefault();ошибки:
ошибка 241 не удается преобразовать лямбда-выражение В тип 'string', потому что это не тип делегата
Ошибка 242 Делегата ' Системы.Функция.<.> не принимает 1 аргументов
ошибка 243 имя 'Value' не существует в текущем контексте
исправьте ошибку переменной "значение", и другие ошибки также исчезнут.
для людей, просто наткнувшихся на это сейчас, я разрешил ошибку этого типа, которая была брошена со всеми ссылками и использованием операторов, размещенных правильно. Очевидно, есть некоторая путаница с заменой в функции, которая возвращает DataTable вместо вызова ее на объявленной DataTable. Например:
это сработало для меня:
DataTable dt = SomeObject.ReturnsDataTable(); List<string> ls = dt.AsEnumerable().Select(dr => dr["name"].ToString()).ToList<string>();но это не так:
List<string> ls = SomeObject.ReturnsDataTable().AsEnumerable().Select(dr => dr["name"].ToString()).ToList<string>();Я все еще не на 100% уверен, почему, но если кто-то расстроен ошибкой этого типа, попробуй это сделать.
Comments