C# OData v4客户端代码生成器/Microsoft.OData.Core:创建可为null的<;int>;来自不可为null int的外键
我不确定这是最新的Microsoft.OData.Core出现的问题,还是最新的OData v4客户端代码生成器发生了更改。但是,客户机代码生成器现在正在未设置为nullable int的int字段上创建可为nullable的外键。如下所述: 解决此问题的方法是将C# OData v4客户端代码生成器/Microsoft.OData.Core:创建可为null的<;int>;来自不可为null int的外键,c#,odata,asp.net-web-api2,odata-v4,C#,Odata,Asp.net Web Api2,Odata V4,我不确定这是最新的Microsoft.OData.Core出现的问题,还是最新的OData v4客户端代码生成器发生了更改。但是,客户机代码生成器现在正在未设置为nullable int的int字段上创建可为nullable的外键。如下所述: 解决此问题的方法是将[ForeignKey(“ColumnName”)]设置为[Required,ForeignKey(“ColumnName”)]。$metadata随后将相应的外键int字段报告为null=false,并且客户端代码生成器将正确地生成不
[ForeignKey(“ColumnName”)]
设置为[Required,ForeignKey(“ColumnName”)]
。$metadata随后将相应的外键int字段报告为null=false,并且客户端代码生成器将正确地生成不可为null的int
在我最近升级Microsoft.OData.Core和OData v4客户端代码生成器之前,这是不必要的,但是因为我同时升级了它们,所以我无法确定罪魁祸首。正如我与自己辩论的那样:上述解决方案将创建一个不可为空的外键关系。但是,不可为空的不仅仅是foreignkey id。外键引用的整个集合成为必需的。使用所需外键保存实体时,如果保存失败,则会出现问题。以下是一个详细说明问题的链接: