检查 int 属性 是否有来自 HTTP 请求的值分配给它
Check if an int property has value assigned to it coming from an HTTP request
各位程序员大家好,
我有一个简单的域表示如下:
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public List<Quote> Quotes { get; set; } = new List<Quote>();
}
和
public class Quote
{
public int Id { get; set; }
public string Text { get; set; }
public Person Person { get; set; } // Just a navigation property.
public int PersonId { get; set; } // The foreign key for Person.
}
我正在 ASP.NET Core 中的一个 PUT 端点上工作,它从 HTTP 请求的主体中获取一个 Quote 对象以更新引用文本。但是,我想确保说这句话的人不会随文本一起更改。
当作为 JSON 传递时,对象如下所示:
{
"id": 69,
"text": "nice quote"
}
由于不一定要包含 PersonId
,它作为 null
发回,因此在与当前值比较以查看它是否不同时我必须忽略它,但是 C#编译器不允许我这样做,因为整数是不可为 null 的值类型,使 PersonId == null
成为无意义的语句。
所以我的问题是:有没有办法在不使用 POCO class 中的 int?
的情况下检查整数的“无值”?
如果需要任何进一步的信息,请告诉我。谢谢。
您可以检查 int
的默认值,即 0。我假设在某种数据存储中,您的人员 ID 永远不会等于 0(甚至小于 0 ).
public void Put(Quote quote)
{
if (quote.PersonId == default)
{
// person id is the default value of int (0)
}
}
各位程序员大家好,
我有一个简单的域表示如下:
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public List<Quote> Quotes { get; set; } = new List<Quote>();
}
和
public class Quote
{
public int Id { get; set; }
public string Text { get; set; }
public Person Person { get; set; } // Just a navigation property.
public int PersonId { get; set; } // The foreign key for Person.
}
我正在 ASP.NET Core 中的一个 PUT 端点上工作,它从 HTTP 请求的主体中获取一个 Quote 对象以更新引用文本。但是,我想确保说这句话的人不会随文本一起更改。
当作为 JSON 传递时,对象如下所示:
{
"id": 69,
"text": "nice quote"
}
由于不一定要包含 PersonId
,它作为 null
发回,因此在与当前值比较以查看它是否不同时我必须忽略它,但是 C#编译器不允许我这样做,因为整数是不可为 null 的值类型,使 PersonId == null
成为无意义的语句。
所以我的问题是:有没有办法在不使用 POCO class 中的 int?
的情况下检查整数的“无值”?
如果需要任何进一步的信息,请告诉我。谢谢。
您可以检查 int
的默认值,即 0。我假设在某种数据存储中,您的人员 ID 永远不会等于 0(甚至小于 0 ).
public void Put(Quote quote)
{
if (quote.PersonId == default)
{
// person id is the default value of int (0)
}
}