程序员朋友们好,
我有一个简单的域表示如下:
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# 编译器赢了不要让我这样做,因为整数是不可为空的值类型,使 PersonId == null
成为毫无意义的语句。
所以我的问题是:有没有办法在 POCO 类中不使用 int?
来检查整数的“无价值”?
如果需要更多信息,请告诉我。谢谢。
答案 0 :(得分:1)
您可以检查 int
的默认值,即 0。我假设在某种数据存储中,您的人员 ID 永远不会等于 0(甚至小于 0)。
public void Put(Quote quote)
{
if (quote.PersonId == default)
{
// person id is the default value of int (0)
}
}