gpt4 book ai didi

c# - Dotnet Core 3.1 - 更新到 3.1 并使用 "HasDefaultValue"设置默认值似乎不存在

转载 作者:太空宇宙 更新时间:2023-11-03 19:38:05 24 4
gpt4 key购买 nike

更新到 Dotnet Core 3.1 并移植我的代码,我发现在我的 DbContext 中出现以下错误:

'PropertyBuilder' does not contain a definition for 'HasDefaultValue' and no accessible extension method 'HasDefaultValue' accepting a first argument of type 'PropertyBuilder' could be found (are you missing a using directive or an assembly reference?)

发生这种情况的代码如下:

        modelBuilder.Entity<Tenant>().Property(t => t.TenantNo).HasMaxLength(20);
modelBuilder.Entity<Tenant>().Property(t => t.CompanyName).HasMaxLength(100).IsRequired();
modelBuilder.Entity<Tenant>().Property(t => t.ContactLastName).HasDefaultValue(false).IsRequired();
modelBuilder.Entity<Tenant>().Property(t => t.Email).HasMaxLength(500).IsRequired();
modelBuilder.Entity<Tenant>().Property(t => t.MobilePhone).HasMaxLength(20).IsRequired();
modelBuilder.Entity<Tenant>().Property(t => t.OfficePhone).HasMaxLength(20);
modelBuilder.Entity<Tenant>().Property(t => t.CompanyEmail).HasMaxLength(500);
modelBuilder.Entity<Tenant>().Property(t => t.Address1).HasMaxLength(500);
modelBuilder.Entity<Tenant>().Property(t => t.Address2).HasMaxLength(500);
modelBuilder.Entity<Tenant>().Property(t => t.ABN).HasMaxLength(14);
modelBuilder.Entity<Tenant>().Property(t => t.Database).HasMaxLength(100).IsRequired();
modelBuilder.Entity<Tenant>().Property(t => t.IsLocked).HasDefaultValue(false);

在我使用 .HasDefaultValue 的任何地方我都会收到此错误。我相信,我有所有必需的指令......

using JobsLedger.CATALOG.Entities;
using Microsoft.EntityFrameworkCore;
using System.Threading;
using System.Threading.Tasks;

似乎在从 3.0 升级到 3.1 时他们错过了这一点,或者他们正在使用不同的方式设置默认值..

所以在我发布这篇文章之前,我确实进行了谷歌搜索和 Stackoverflow 搜索,但没有结果。

想知道有人会建议如何在 3.1 中设置默认值吗?

最佳答案

你有没有添加https://www.nuget.org/packages/Microsoft.EntityFrameworkCore.Relational/在您的项目中为 3.1 核心打包?

我建议您安装和/或删除/安装该软件包,看看它是如何工作的。

如您在变更日志中所见,EF 3.1 中没有任何变化 here

To this end we have fixed over 150 issues for the 3.1 release, but there are no major new features to announce.

顺便说一下,this is the current code for 3.1在包中,您可以在其中看到扩展的存在。

    public static PropertyBuilder HasDefaultValue(
[NotNull] this PropertyBuilder propertyBuilder,
[CanBeNull] object value = null)
{
Check.NotNull(propertyBuilder, nameof(propertyBuilder));

propertyBuilder.Metadata.SetDefaultValue(value ?? DBNull.Value);

return propertyBuilder;
}

关于c# - Dotnet Core 3.1 - 更新到 3.1 并使用 "HasDefaultValue"设置默认值似乎不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59234093/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com