Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# OData v4客户端代码生成器/Microsoft.OData.Core:创建可为null的<;int>;来自不可为null int的外键_C#_Odata_Asp.net Web Api2_Odata V4 - Fatal编程技术网

C# OData v4客户端代码生成器/Microsoft.OData.Core:创建可为null的<;int>;来自不可为null int的外键

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,并且客户端代码生成器将正确地生成不

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

如下所述:

解决此问题的方法是将
[ForeignKey(“ColumnName”)]
设置为
[Required,ForeignKey(“ColumnName”)]
。$metadata随后将相应的外键int字段报告为null=false,并且客户端代码生成器将正确地生成不可为null的int


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

正如我与自己辩论的那样:上述解决方案将创建一个不可为空的外键关系。但是,不可为空的不仅仅是foreignkey id。外键引用的整个集合成为必需的。使用所需外键保存实体时,如果保存失败,则会出现问题。以下是一个详细说明问题的链接: