используя LINQ внутри функции - PullRequest
1 голос
/ 04 февраля 2010
 public List<NDT_Equipment> GetALLRecords()
    {
        using (NDT_DB)
        {
            return (from a in NDT_DB.NDTEquipment select a);
        }
    }
  • где: NDT_DB - экземпляр класса автоматически сгенерированного класса базы данных контекста NDT_Equipment - частичный класс внутри класса контекста базы данных

  • что я хочу:

    • вернуть все записи из таблицы NDTEquipment
  • что я получаю: Ошибка "вы пропустили приведение" каждый раз, когда я компилирую ..

вопрос: - мне разрешено использовать частичный класс NDT_Equipment в качестве возвращаемого значения для использования в моем VIEWMODEL ??? или мне нужно создать определенный класс, который будет содержать результаты этого оператора LINQ, и этот класс должен использоваться в моем VIEWMODEL?

Ответы [ 4 ]

7 голосов
/ 04 февраля 2010

Попробуйте это:

return (from a in NDT_DB.NDTEquipment select a).ToList();
1 голос
/ 04 февраля 2010

Если вам на самом деле не нужно использовать функции, предоставляемые List<NDT_Equipment>, я бы изменил сигнатуру метода, чтобы вместо него вывести IEnumerable<NDT_Equipment>:

public IEnumerable<NDT_Equipment> GetALLRecords()
{
    using (NDT_DB)
    {
        return (from a in NDT_DB.NDTEquipment select a);
    }
}

Обновление
Кажется, что-то странное в коде; аргумент универсального типа в методе равен NDT_Equipment, а объект данных называется NDTEquipment; вы указываете правильный тип аргумента? Если вы указываете на a в своем коде, какого типа это будет? Это тип, который вы должны иметь в аргументе универсального типа.

1 голос
/ 04 февраля 2010

Запрос LINQ возвращает IQueryable, а не список, поэтому сначала необходимо преобразовать его в список:

return (from a in NDT_DB.NDTEquipment select a).ToList();
1 голос
/ 04 февраля 2010

Я думаю, что вы получаете ошибку, потому что оператор LINQ не возвращает List (который указывает подпись вашего метода) Попробуйте изменить эту строку:

return (from a in NDT_DB.NDTEquipment select a);

Кому:

return (from a in NDT_DB.NDTEquipment select a).ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...