重复的 id 生成

Duplicate id generate

我正在使用 asp.net 核心网络 api 和 cosmos 数据库创建一个项目。我生成 id 作为 GUID 值,我自动生成 id.But 它创建重复值。

work.cs 文件:

 public class work
        {
            [JsonProperty("id")]
            public Guid Id { get; set; }

            [JsonProperty("name")]
            public string name { get; set; }

            public List<Industy> Industy { get; set; }
            public work()
            {
                if (Id == null)
                {
                    Id = Guid.NewGuid();
                }
                else
                {
                    Id = Id;
                }
            }
        }

Industry.cs 文件:

public class Industy
    {    
        [JsonProperty("Id")]
        public Guid Id { get; set; }

        [JsonProperty("IdustryId")]
        public int IdustryId { get; set; }

        [JsonProperty("IdustryName")]
        public string IdustryName { get; set; }


        public Industy()
        {
            if (Id == null)
            {
                Id = Guid.NewGuid();
            }
            else
            {
                Id = Id;
            }
        }    
    }

输出:



>  {
>     "id": "00000000-0000-0000-0000-000000000000",
>     "Name": "string",
>     "industy": {
>       "id": "00000000-0000-0000-0000-000000000000",
>       "IdustryId": 0,
                 }
>  }   

如果我输入多个没有 id 的值,它会显示错误,id 已经存在。请帮我解决一下。

在两个模型中将 public Guid Id { get; set; } 标记为可为空:

public Guid? Id { get; set; }

Guid 是结构和值类型。这意味着您必须与其默认值而不是 null 进行比较或将其标记为可为空。

@mexanich 有很好的解决方案。您仍然可以尝试另一种方法。如果您不想将 属性 更改为 nullable,请按如下方式更新条件。也不需要 else 块。你可以消除它。

if (Id == default(Guid))
{
    Id = Guid.NewGuid();
}