生成重复的 ID



我正在使用 asp.net 核心Web api和cosmos db创建一个项目。我将 id 生成为 GUID 值,并自动生成 id。但它会创建重复值。

工作.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;
                }
            }
        }

行业.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 或将其标记为可为 null。

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

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

相关内容

  • 没有找到相关文章

最新更新