【问题标题】:Odata breaking with unconventional association打破常规关联的 Odata
【发布时间】:2020-12-02 20:51:39
【问题描述】:

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

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 中填充的。

【问题讨论】:

  • 请不要图片。尽可能发布文本。此外,图像中的 json 并不清楚返回对象是如何被破坏的。也许您还应该发布正确的返回对象。用其他东西代替私有字符串,而不是空格。
  • 嗨,很抱歉延迟回复。感谢您提供有关图像的提示。关于结果,它是坏的,因为返回就是这样,它没有关闭对象,它停在第六行。

标签: odata ef-core-2.2


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2016-01-14
    • 1970-01-01
    • 2021-05-31
    • 1970-01-01
    • 2013-01-10
    • 1970-01-01
    • 1970-01-01
    • 2010-10-11
    • 2010-10-02
    相关资源
    最近更新 更多