#linq
#linq
Вопрос:
Глядя на динамический Linq, можно использовать строки для определения ключевых частей запроса. Мой вопрос в том, возможно ли передать весь запрос в виде строки?
ie: var foo = «из …»
Комментарии:
1. вы получили ответ, он полезен
2. Привет, Пранай, передача строк SQL не была моей целью, но спасибо за предложение. 🙂
Ответ №1:
LINQ расшифровывается как «Запросы, интегрированные с языком» — он компилируется с остальной частью кода, а не анализируется при запуске. Вы можете использовать Microsoft.CSharp.CSharpCodeProvider для компиляции вашего запроса во время выполнения — но вам нужно будет заранее знать, какие локальные объекты вы хотите отправить в запрос.
Комментарии:
1. Спасибо, на самом деле это самый близкий ответ, хотя я не уверен, как бы я это сделал.
2. Ну, это действительно зависит от того, что вы хотите сделать. Вот небольшое руководство по использованию CSharpCodeProvider: mattephraim.com/blog/2009/01/02 /. … По сути, вам нужно скомпилировать класс, содержащий статический метод, который выполняет запрос LINQ, который вы хотите. И затем вызовите этот метод. Я предполагаю, что вы не подключаетесь к SQL, поэтому, если вы подключаетесь к XML, вы просто отправляете XML-документ этому методу, но если вы подключаетесь к другим структурам данных, вам нужно точно спланировать, какие объекты вы хотите отправить этому методу.
Ответ №2:
Это невозможно в динамическом LINQ — динамический LINQ заменяет только определенные части запроса. Вы можете использовать ExecuteQuery для контекста данных в LINQ to SQL или SqlQuery для a DbSet<T>
, однако, для выполнения определенных команд SQL.