Odata 小田打破了与非传统的联系

Odata 小田打破了与非传统的联系,odata,ef-core-2.2,Odata,Ef Core 2.2,我想做一个非常规的连接,像这样: builder.HasOne(x => x.MATERIAL_OBJ) .WithMany() .HasForeignKey(c => c.MATERIAL) .HasPrincipalKey(p => p.MATERIAL_CODE); 因为我的一个表中的数据来自外部源,我需要通过非PK(VARCHAR)字段与另一个表进行连接。 我的表格如下: 过渡表 +---------+----------+ | I

我想做一个非常规的连接,像这样:

builder.HasOne(x => x.MATERIAL_OBJ)
      .WithMany()
      .HasForeignKey(c => c.MATERIAL)
      .HasPrincipalKey(p => p.MATERIAL_CODE);
因为我的一个表中的数据来自外部源,我需要通过非PK(VARCHAR)字段与另一个表进行连接。 我的表格如下:

过渡表

+---------+----------+
| ID      | MATERIAL |
+---------+----------+
| 1       | ABC      |
| 2       | HIJ      |
+---------+----------+
材料表:

+---------------+---------------+
| MATERIAL_CODE | SUPPLIER_NAME |
+---------------+---------------+
| ABC           | SUP 1         |
| DEF           | SUP 2         |
+---------------+---------------+
transits表总是满的,有时还有我们没有的材料。如果我们有材料,那么对象正确填充,我面临的问题是,每当材料不在表中时,我的odata就不能正常工作,破坏了返回对象,如下所示:

有没有办法让odata返回null,而不是破坏返回

编辑:下面是返回值:

{"@odata.context":"http://MYAPI/odata/$metadata#TRANSIT(Id,MATERIAL,MATERIAL_OBJ,MATERIAL_OBJ()","value":[{"Id":12567,"MATERIAL":"REDACTED"

此外,这似乎与odata有关,因为对象是在API中填充的。

我发现这是EF Core的一个问题,因为我使用了非常规的映射。我决定改为查看,并将其映射到EF。

请不要图像。尽可能发布文本。此外,图像中的json没有明确说明返回对象是如何被破坏的。也许你也应该发布一个正确的返回对象。将私有字符串替换为其他内容,而不是空白。您好,很抱歉响应延迟。谢谢你的图片提示。关于结果,它被破坏了,因为返回值只是,它没有关闭对象,它停在第六行。