我不确定这是否是最新的Microsoft.OData.Core的问题,或者它是否是最新OData v4客户端代码生成器的更改。但是,客户端代码生成器现在在未设置为nullable int的int字段上创建可为空的外键。
答案 0 :(得分:2)
如此处所述:https://visualstudiogallery.msdn.microsoft.com/9b786c0e-79d1-4a50-89a5-125e57475937
问题的解决方案是将[ForeignKey("ColumnName")]
设置为[Required, ForeignKey("ColumnName")]
。 $元数据然后将相应的外键int字段报告为nullable = false,并且客户端代码生成器将正确生成不可为空的int。
在我最近升级Microsoft.OData.Core
和OData v4客户端代码生成器之前,没有必要这样做,但是因为我同时升级了它们,所以无法确定罪魁祸首。