Почему указанное приведение неверно при попытке выполнить запрос с Entity Framework? - PullRequest
0 голосов
/ 28 сентября 2018

Из этой таблицы SQL MY_TABLE (типы DATE и NUMBER ) ...

COL1   DATE     NOT NULLABLE
COL2   NUMBER   NOT NULLABLE
COL3   NUMBER   NULLABLE
COL4   NUMBER   NULLABLE

... Я сгенерировал класс MY_TABLE с помощью EdmGen...

public partial class MY_TABLE 
{
    public System.DateTime COL1 { get; set; }
    public decimal COL2 { get; set; }
    public Nullable<decimal> COL3 { get; set; }
    public Nullable<decimal> COL4 { get; set; }
}

... который я пытаюсь запросить с помощью LINQ ...

List<MY_TABLE> items = dbContext.MY_TABLE.Where(el => el.COL2 == 1).ToList();

... без успеха ...

Specified cast is not valid

Я

Кажется, что LINQ терпит неудачу при попытке сопоставить запрос с его внутренними объектами, потому что FirstOrDefault, ToList и т. д. все выдают одинаковую ошибку.Почему?

1 Ответ

0 голосов
/ 28 сентября 2018

Оказывается, проблема была в десятичной точности Entity Framework.COL3 и COL4 имели слишком много десятичных знаков в базе данных, что привело к сбою приведения.

Я округлил десятичные числа в базе данных, чтобы получить результаты в моем объекте.

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