Я вполне уверен, что знаю, что ответ - нет, но как последняя попытка канавы, я думал, что задал бы здесь вопрос.Можно ли изменить выражение IQueryable вручную
Я использую код EF первым для запроса таблицы обычным способом
_context.Set<Foo>().Where(f => f.Bar == 999);
создающей следующее выражение (я только что написал это так, это может быть неправильно).
{SELECT
[Extent1].[Test] AS [Test],
[Extent1].[Test2] AS [Test2],
FROM [dbo].[Foo] AS [Extent1]
WHERE 19 = [Extent1].[Bar]}
Теперь, можно ли вручную изменить этот запрос, чтобы изменить имя таблицы, скажем, на Foo10? (возможно, нет)
В противном случае кто-нибудь знает, как я могу «опоздать связать» имя таблицы в коде первым?
Возможно, вы задаетесь вопросом: «Почему грязный рубить?» Как обычно, это устаревшая проблема с базой данных, которая имеет некоторые проблемы с дизайном и не может быть изменена.
Заранее спасибо.
Ps. Я знаю, что могу использовать Database.SqlQuery
, но скорее не буду.
Почему у вас нет таблицы 'Foo10' в вашей модели? – BrokenGlass
Поскольку технически его та же модель распространяется на несколько таблиц. Таблица, в которой находятся ваши данные, зависит от параметра –
@mjmcloug, как это зависит? – Krizz