Odata打破常规联想

Odata breaking with unconventional association

我正在尝试进行非常规连接,如下所示:

builder.HasOne(x => x.MATERIAL_OBJ)
      .WithMany()
      .HasForeignKey(c => c.MATERIAL)
      .HasPrincipalKey(p => p.MATERIAL_CODE);

因为我的 table 之一的数据来自外部源,我需要通过非 PK (VARCHAR) 字段与另一个 table 进行连接。 我的 table 如下:

过境table

+---------+----------+
| ID      | MATERIAL |
+---------+----------+
| 1       | ABC      |
| 2       | HIJ      |
+---------+----------+

Material table:

+---------------+---------------+
| MATERIAL_CODE | SUPPLIER_NAME |
+---------------+---------------+
| ABC           | SUP 1         |
| DEF           | SUP 2         |
+---------------+---------------+

过境 table 总是充满,有时 material 我们没有可用的。如果我们有 material,那么对象就会正确填充,我面临的问题是只要 table 中不存在 material,我的 odata 就不会存在正常工作,打破 return 对象,像这样:

有什么方法可以将 return odata 设为 null,而不是破坏 return?

编辑:下面是 return 值:

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

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

我发现这是 EF Core 的问题,因为我进行了非常规映射。我决定改用视图并将其映射到 EF。