Dotnet EF Core 2.1在查询十进制属性时抛出QueryClientEvaluationWarning

问题描述 投票:0回答:1

我有一个C#类贷款,该贷款映射到SQL Server数据库中的Loans表。我正在使用DotNet 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();

由于无法在服务器端执行查询而引发异常。其他数字属性类型(例如int)也可以正常工作。

c# linq .net-core ef-core-2.1
1个回答
0
投票

我不确定这是否对您有帮助,但是如果您首先使用EF代码,则可以在配置类中指定小数位数和精度。例如:

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

该类的My PurchaseCost属性定义为小数类型。

© www.soinside.com 2019 - 2024. All rights reserved.