2014-09-15 3 views
0

С EF вы обычно сопоставляете класс с таблицей, и вы можете запускать ручные запросы и хранимые процедуры, но вам все равно придется включать класс, с которым он будет соответствовать. Можно ли использовать DbContext для запуска пользовательского SQL-запроса и использовать возвращаемые значения каким-либо образом, не сопоставляя его с классом?Entity Framework Run Query без привязки к классу

У меня есть необходимость запуска пользовательских операторов sql, введенных пользователями, где я не буду знать, какие столбцы возвращены, поэтому я не могу просто сопоставить его с классом, как обычно, и я хочу избежать использования DataTables, DataRows и т. Д., Если Я могу использовать это, если это невозможно и просто пропустить столбцы в каждом DataRow.

+0

вероятно, вы должны расширить описание с вводом образца, как это разделенные запятыми, или список строки, или что-то другое? какие требуемые типы возврата; анонимный тип, список, тип объекта или что-то еще? –

ответ

1

Да, вы можете запустить любой запрос и его возвращает анонимный типа

http://msdn.microsoft.com/en-us/library/vstudio/bb738512%28v=vs.100%29.aspx

+0

Я не знаю, почему кто-то отметил это, так как он ответил на мой вопрос именно так, спасибо. – user1166905

+0

На первый взгляд я бы сказал, что это не отвечает на вопрос из-за того, что анонимные типы не могут быть определены во время выполнения. Но поскольку это было отмечено как правильный ответ, я предполагаю, что вопрос был немного расплывчатым. «Мне нужно запускать пользовательские SQL-запросы, введенные пользователями», похоже, что инструкции вводятся во время выполнения. Если выбранные столбцы sql могут варьировать время выполнения, это решение не будет работать. – qujck