C# 检查int属性是否具有从HTTP请求分配给它的值
大家好,程序员们 我有一个简单的域,表示如下:C# 检查int属性是否具有从HTTP请求分配给它的值,c#,http,asp.net-core,asp.net-core-webapi,.net-5,C#,Http,Asp.net Core,Asp.net Core Webapi,.net 5,大家好,程序员们 我有一个简单的域,表示如下: public class Person { public int Id { get; set; } public string Name { get; set; } public List<Quote> Quotes { get; set; } = new List<Quote>(); } 我正在ASP.NET核心中开发一个PUT端点,该端点从HTTP请求主体中获取Quote对象,以便更新Quote
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public List<Quote> Quotes { get; set; } = new List<Quote>();
}
我正在ASP.NET核心中开发一个PUT端点,该端点从HTTP请求主体中获取Quote对象,以便更新Quote文本。然而,我想确保说这句话的人不会随着文字的变化而改变
当作为JSON传递时,对象如下所示:
{
"id": 69,
"text": "nice quote"
}
由于PersonId
不一定要包含在内,它会作为null
返回,因此在与当前值进行比较时,我必须忽略它,以查看它是否不同,但C#编译器不允许我这样做,因为整数是不可为null的值类型,使PersonId==null
成为无意义的语句
所以我的问题是:有没有一种方法可以在POCO类中不使用int?
检查整数的“无值”呢
如果需要进一步的信息,请告诉我。谢谢。您可以检查
int
的默认值,即0。我假设在某种数据存储中,您永远不会拥有等于0(甚至小于0)的个人ID
publicsvoidput(报价)
{
if(quote.PersonId==默认值)
{
//person id是int(0)的默认值
}
}
查看您是否不想将PersonId发送回去-不要这样做。创建另一个类型来表示没有PersonId属性的返回的Quote。我在链接帖子中尝试了这种方法,虽然它有效,但现在我在响应中发送了布尔字段以及相关字段LOL,这有点尴尬。无论如何,谢谢你的洞察力。虽然还没有尝试过@Fabio的解决方案,但这似乎是对我来说最简单的方法,但我曾经在一个地方工作过,那里有一些客户的ERP数据库xD中的ID为负数
{
"id": 69,
"text": "nice quote"
}