我正在使用 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();
}