【问题标题】:Does entity framewrk core IEntityTypeConfiguration class hava HasPrecision() function?实体框架核心 IEntityTypeConfiguration 类是否具有 HasPrecision() 功能?
【发布时间】:2020-10-13 09:38:02
【问题描述】:

在 EF6 中,我可以映射如下字段:

Property(_ => _.Total_Excursion).HasColumnName("TOTAL_EXCURSION").HasColumnType("NUMBER")
                    .HasPrecision(12, 2);

现在我使用 ef core ,我不能使用 HasPrecision() 功能。 还有其他替代方法吗?

【问题讨论】:

  • 正如副本的答案所示,在 EF Core 3 中,您可以使用 SetColumnType。在 EF Core 5 中,SetPrecision。对于早期版本 - 如果可以,请不要使用它们,直接转到 EF Core 3.1。它是一个 .NET Standard 2.0 包,这意味着您也可以在 .NET Core 2.1 中使用它。 EF Core 1.x 太古怪了,无法使用,EF Core 2.x 仍然有一些令人不快的功能,例如客户端评估

标签: entity-framework-core


【解决方案1】:

我认为这样就可以了。

如果您使用的是 EF3

Property(_ => _.Total_Excursion)
            .HasColumnName("TOTAL_EXCURSION")
            .SetColumnType("decimal(12, 2)");

如果您使用的是 EF5

 Property(_ => _.Total_Excursion)
                .HasColumnName("TOTAL_EXCURSION")
                .property.SetPrecision(12);
                .property.SetScale(2);

【讨论】:

  • 在 EF core 3 EntityTypeBuilder 中,出现错误 cs1912 :PropertyBuilder does not contain a definition of SetColumnType
【解决方案2】:

我找到了答案, 使用 EF3:

Property(_ => _.Total_Excursion)
            .HasColumnName("TOTAL_EXCURSION")
            .HasColumnType("decimal(12, 2)");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-13
    • 2021-12-04
    • 2021-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多