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。
我正在尝试进行非常规连接,如下所示:
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。