Asp.net web api 重复id生成
我正在使用asp.net核心web api和cosmos db创建一个项目。我生成id作为GUID值,我自动生成id。但它会创建重复的值 work.cs文件:Asp.net web api 重复id生成,asp.net-web-api,azure-cosmosdb,guid,Asp.net Web Api,Azure Cosmosdb,Guid,我正在使用asp.net核心web api和cosmos db创建一个项目。我生成id作为GUID值,我自动生成id。但它会创建重复的值 work.cs文件: public class work { [JsonProperty("id")] public Guid Id { get; set; } [JsonProperty("name")] public string name
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;
}
}
}
输出:
> {
> "id": "00000000-0000-0000-0000-000000000000",
> "Name": "string",
> "industy": {
> "id": "00000000-0000-0000-0000-000000000000",
> "IdustryId": 0,
}
> }
如果我输入多个没有id的值,它会显示错误,id已经存在。请帮助我修复它。在两种型号中都将
公共Guid Id{get;set;}
标记为可为空:
公共Guid?Id{get;set;}
Guid是一种结构和值类型。这意味着您必须与它的默认值进行比较,而不是空值,或者将其标记为可空值。@mexanich有很好的解决方案。你仍然可以尝试更多的方法。如果您不想将属性更改为
nullable
,请更新如下条件。另外,不需要else
块。你可以消除它
if (Id == default(Guid))
{
Id = Guid.NewGuid();
}
编译器应该给您一个警告,与null进行比较永远不会是真的
if (Id == default(Guid))
{
Id = Guid.NewGuid();
}