如何在 Ms SQL 中配置空属性

Posted

技术标签:

【中文标题】如何在 Ms SQL 中配置空属性【英文标题】:How to config null properties in Ms SQL 【发布时间】:2021-12-13 22:48:31 【问题描述】:

我有一个实体:

public class Match
    
        public string MatchId  get; set; 
        public int MatchNumber  get; set; 
        public DateTime DateMatch  get; set; 
        public TimeSpan TimeMatch  get; set; 
        public int MatchYear  get; set; 
        public string SeasonId  get; set; 
        /// <summary>
        /// Round have value Qualified for qualify and final for Final Round
        /// </summary>
        public string Round  get; set;  
        /// <summary>
        /// Stage have two value: Group and KnockOut
        /// </summary>        
        public string Stage  get; set; 
        public string SubStage  get; set; 
        public string HTeam  get; set; 
        public int HGoal  get; set; 
        public int GGoal  get; set; 
        public string GTeam  get; set; 
        public string WinNote  get; set; 
        public string Stadium  get; set; 
        public string Referee  get; set; 
        public long Visistors  get; set; 
        public string Status  get; set; 
        #region RelationShip
        public virtual Season Seasons  get; set; 
            public virtual Team HomeTeam  get; set;  
            public virtual Team GuestTeam  get; set; 
            //public Country Countries  get; set;           
        #endregion

    

我有这样的配置:

public class MatchesConfiguration : IEntityTypeConfiguration<Match>

    public void Configure(EntityTypeBuilder<Match> builder)
                
        builder.HasKey(t => t.MatchId);
        builder.Property(t => t.DateMatch).HasColumnType("date");
        builder.Property(t => t.TimeMatch).HasColumnType("time");
        builder.Property(t => t.MatchId)
            .HasMaxLength(20)
            .IsRequired();
    

它会像这样创建数据库表。 enter image description here

对于未完成的比赛,我没有 HGoal 和 GGoal 的值。

那么我该如何修改配置来配置它。 谢谢。

【问题讨论】:

您可能需要将他们的字段更改为int?。字符串可能被设为 Nullable,因为字符串是对象。 【参考方案1】:

只要让属性可以为空

public int? HGoal  get; set; 
public int? GGoal  get; set; 

您必须重复迁移到数据库才能使其正常工作

【讨论】:

以上是关于如何在 Ms SQL 中配置空属性的主要内容,如果未能解决你的问题,请参考以下文章

[MS SQL Server]SQL Server如何开启远程访问

如何在 MS Access 2010 中的单元格中显示空值

如何配置 EF Core 5 以使 MS SQL Server 数据库生成 Guid 密钥

MS SQL/Powershell:如何杀死可用性组中辅助节点上的后台进程

如何将 QNAP Web 服务器连接到 Microsoft MS SQL

MS SQL 如何查看一个数据库中所有表的行数