gpt4 book ai didi

asp.net - 如何在 ASP.NET 5 和 EF7 的代码优先方法中设置可选字段

转载 作者:行者123 更新时间:2023-12-04 01:56:55 26 4
gpt4 key购买 nike

我正在做一个项目,我想在代码优先方法中将一些属性设置为可选。在我的类文件中,我添加了 [Required]我在 SQL 中设置为不为空的属性和不具有 [Required] 的属性应该设置为允许在 SQL 中为空,但是对于其中包含 ID 的某些属性,它在 SQL 中设置为不为空。下面是我的示例类,其中包含在数据库中生成表时应使用的属性。我想设置EnvironmentLastDeployedId在 MSSQL 中创建新数据库时,属性为可选。

public class Version
{
public int Id { get; set; }

[Required]
public string PackageName { get; set; }
public string VersionName { get; set; }
public string OriginalPackageName { get; set; }

[Required]
public string CommitID { get; set; }
public string CommitMessage { get; set; }
public int ApplicationId { get; set; }
public Application Application { get; set; }
public string CreatedBy { get; set; }
public int EnvironmentLastDeployedId { get; set; }
public Environment EnvironmentLastDeployed { get; set; }
public int StatusId { get; set; }
public Status Status { get; set; }
public DateTime CreatedOn { get; set; }
public DateTime ModifiedOn { get; set; }
}

在我的 Context 类文件中,我尝试使用 Fluent API,但我只得到 IsRequired方法,但不是 IsOptional或允许我设置表列以允许在数据库中为空的东西。
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Version>()
.Property(p => p.EnvironmentLastDeployedId).IsRequired();
}

最佳答案

如果你想允许 int 为空值,你只需要使用 int?:

public int? ApplicationId { get; set; }

这将映射到 SQL 中的可空列,因此在尝试存储该列的空值记录时不会引发任何异常。

关于asp.net - 如何在 ASP.NET 5 和 EF7 的代码优先方法中设置可选字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35228674/

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