【发布时间】: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