Мне дана база данных. В этой базе данных является таблица с именем Пример, который выглядит следующим образом:Присоединиться к таблице со строковым значением в Linq
ID EntityName EntityID
1 Foo 1
2 Bar 1
3 Foo 2
4 Bar 2
Колонка EntityName и EntityId объединяются, чтобы сделать внешний ключ либо Foo или таблицы Bar. Если поле EntityName имеет значение «Foo», EntityID ссылается на FooID в таблице Foo. К сожалению, структура базы данных не должна изменяться. Мой вопрос:
Могу ли я создать запрос Linq, который только присоединяется к необходимой таблице на основе значения EntityName?
Я ищу что-то вроде этого:
from e in examples
join table in [e.EntityName] ON e.EntityID equals table.([EntityID] + "ID")
// etc
это может быть сделано?
Что вы ожидаете от SQL? –
Я бы добавил подзапрос, который получает значение столбца EntityName, а затем if/else, чтобы решить, к какой таблице присоединяется. Не очень красивое решение, но оно может работать. На боковой панели вы очень хорошо ответили на один из моих предыдущих вопросов. В результате я начал читать твою книгу в надежде на то, чтобы пробиться к твоему уровню. Спасибо за продолжение помощи! – ohyeah
Этот подзапрос может выглядеть довольно интересным ... Я подозреваю, что вам вполне может понадобиться эффективно выполнить трехстороннее соединение с некоторыми фиктивными значениями. Я могу представить, что может выглядеть LINQ *, но я не знаю, действительно ли это работает ... –