Do tnet EF Core 2.1 генерирует QueryClientEvaluationWarning при запросе десятичного свойства - PullRequest
0 голосов
/ 12 февраля 2020

У меня есть кредит класса C#, который сопоставлен с таблицей кредитов в базе данных сервера SQL. Я использую Do tNet EF Core 2.1. взаимодействовать с базой данных из моего кода.

    public class Loan
    {
       public decimal Rate { get;set; }
       // Other properties omitted for brevity
    }

Когда я создаю соединение с базой данных, я настраиваю его для создания исключений, когда запрос не может быть выполнен на стороне сервера, следующим образом:

    services.AddDbContext<DbContext>(options =>
            options
                .UseSqlServer(systemConfiguration.DatabaseConnectionString)
                .ConfigureWarnings(warnings => warnings.Throw(RelationalEventId.QueryClientEvaluationWarning)));

Проблема в том, что при запросе десятичного столбца с использованием LINQ:

    // Obtain DbContext from services
    var loans = await dbContext.Loans.Where(l => l.Rate > 1.5m).ToListAsync();

Возникает исключительная ситуация, поскольку запрос не может быть выполнен на стороне сервера. Другие числовые c типы свойств, такие как int, работают нормально.

Ответы [ 2 ]

0 голосов
/ 13 февраля 2020

Похоже, что на самом деле это не проблема при работе с SQL Сервером. Проблема была в моих интеграционных тестах, которые использовали SQLite

0 голосов
/ 13 февраля 2020

Я не уверен, поможет ли это вам, но если вы сначала используете код EF, вы можете указать масштаб и точность в классе конфигурации. Например:

modelBuilder.Property(x => x.PurchaseCost).HasColumnType("decimal(12,6)");

Свойство My PurchaseCost класса определяется как десятичный тип.

...