Entity Framework - Невозможно преобразовать лямбда-выражение в тип 'string', потому что это не тип делегата - PullRequest
72 голосов
/ 13 января 2010

Я использую Entity Framework в своем коде на C #. Я сталкиваюсь с неожиданной странностью и ищу предложения.

Дело 1, 2, 3, 4 ... Проекты:
RivWorks.dll
RivWorks.Service.dll
RivWorks.Alpha.dll

Образцы (все эти работы):
RivWorks.Alpha.dll:

public static bool EndNegotitation(long ProductID)
{
    var product = (from a in _dbFeed.AutoWithImage 
                   where a.AutoID == ProductID select a).FirstOrDefault();
...
}

RivWorks.Service.dll

public static RivWorks.Model.NegotiationAutos.AutoWithImage 
    GetProductById(long productId)
{
    var myProduct = from a in _dbFeed.AutoWithImage 
                    where a.AutoID == productId select a;

    return myProduct.FirstOrDefault();
}
public static List<RivWorks.Model.NegotiationAutos.AutoWithImage> 
    GetProductByCompany(Guid companyId)
{
    var myProduct = from a in _dbFeed.AutoWithImage 
                    where a.CompanyID == companyId select a;

    return myProduct.ToList();
}

и т.д.

Дело "странности":
RivWorks.Web.Service.dll (проект WCF)
Содержит те же ссылки, что и другие проекты.

public NegotiateSetup GetSetup(string method, string jsonInput)
{
    ...
    long.TryParse(ProductID, out result);
    var product = (from a in _dbFeed.AutoWithImage 
                   where a.AutoID == result select a).FirstOrDefault();
    ...
}

Я получаю эту ошибку времени компиляции (слово "где" выделено в моем редакторе):
Невозможно преобразовать лямбда-выражение в тип 'string', так как это не тип делегата

Есть идеи, что вызвало бы это?

Ответы [ 14 ]

0 голосов
/ 26 июня 2014

Моя проблема связана с форматом:

.Columns(columns => {
    columns.Bound(p => p.Id).Filterable(false);
    columns.Bound(p => p.Name).Width(250);
    ...

Каждый п. Что бы там ни было с этой ошибкой.

Это был проект, использующий MVC, и я обнаружил, что в моей модели есть «public static int» или «public static string» с этими переменными (Id, Name и т.д.) Когда я удалил «static» во всех моих переменных модели, я больше не получил ошибку. Около дня сводил меня с ума ...

0 голосов
/ 27 марта 2014

В моем случае у меня была эта ошибка при попытке использовать Включить в clientContext.Load в приложении Sharepoint 2013.

Я включил клиентскую библиотеку Sharepoint так:

using SP = Microsoft.SharePoint.Client;

Чтобы исправить, кроме того, я также добавил его без пространства имен:

using Microsoft.SharePoint.Client;
using SP = Microsoft.SharePoint.Client;
0 голосов
/ 27 октября 2011

У меня была похожая проблема, но с Rx и в моем случае добавление

using System;

помогли. FWIW

Беспорядок с этими отсутствующими методами расширения иногда слишком раздражает.

0 голосов
/ 04 февраля 2011

У меня была проблема с привязкой столбцов к Telerik MVC Grid. У меня было свойство Id в моем классе ViewModel. (Вдохновленный ответом Криса выше) Я переименовал его в XxxId, и проблема ушла. Кажется, я вспоминаю, как MVC делал что-то особенное для свойств Id.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...