Я пытаюсь создать нетрадиционное объединение, например:
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 |
+---------------+---------------+
Таблица транзитов всегда заполняется, и иногда с материалами, которых у нас нет в наличии,Если у нас есть материал, тогда объект заполнен правильно, проблема, с которой я сталкиваюсь, заключается в том, что всякий раз, когда материал не существует в таблице, мои оддаты просто не работают должным образом, ломая возвращаемый объект, например так:
Есть ли какой-либо способ для оддата вернуть нулевое значение, вместо прерывания возврата?
РЕДАКТИРОВАТЬ: ниже возвращается значение:
{"@odata.context":"http://MYAPI/odata/$metadata#TRANSIT(Id,MATERIAL,MATERIAL_OBJ,MATERIAL_OBJ()","value":[{"Id":12567,"MATERIAL":"REDACTED"
Кроме того, похоже, что это что-то с odata, поскольку объекты заполняются в API.