OData v4 客户端代码生成器/Microsoft.OData.Core:从非可为空的 int 创建 Nullable<int> 外键

OData v4 Client Code Generator / Microsoft.OData.Core : creating Nullable<int> Foreign Keys from non nullable int

我不确定这是最新 Microsoft.OData.Core 的问题,还是最新的 OData v4 客户端代码生成器中的更改。但是,客户端代码生成器现在在未设置为可为空的 int 的 int 字段上创建可为空的外键。

如此处所讨论:https://visualstudiogallery.msdn.microsoft.com/9b786c0e-79d1-4a50-89a5-125e57475937

问题的解决方法是将 [ForeignKey("ColumnName")] 设置为 [Required, ForeignKey("ColumnName")]。然后,$metadata 会将相应的外键 int 字段报告为 nullable=false,而 Client Code Generator 将正确生成一个非 nullable int。

在我最近升级 Microsoft.OData.Core 和 OData v4 客户端代码生成器之前,这不是必需的,但是由于我同时升级了它们,所以我无法确定罪魁祸首。