#servicestack #ormlite-servicestack #servicestack-autoquery
Вопрос:
У меня есть структура таблицы, в которой внешний ключ из таблицы сотрудников ссылается на что-то другое, кроме первичного ключа таблицы отдела. Это по историческим причинам, так что так оно и есть.
Это работает: q.Join<Department>((e, d) => e.DepartmentId == d.DepNo);
. Обратите внимание, что первичным ключом отдела является Id
.
Теперь, могу ли я каким-либо образом указать связь соединения (с именем столбца)? Причина в том, что я хотел бы использовать встроенную IJoin<Employee,Department>
функцию автозапроса, но это не позволяет мне указывать используемые столбцы.
Ответ №1:
Пожалуйста, ознакомьтесь с документами о соглашениях о ссылках для определения неявных ссылок PK и FK.
Автозапрос поддерживает только неявные ссылки, если вам нужно более индивидуальное поведение, вам нужно будет создать пользовательскую реализацию автозапроса.
Комментарии:
1. Да, я подумал, что, возможно, была некоторая перегрузка атрибута
Reference
orForeignKey
, который мог бы явно указать его (имя внешнего столбца), но, похоже, оба они всегда ссылаются на первичный ключ другой таблицы. Это не большая проблема, так как у меня есть обходной путь.