Возможно ли выполнить скалярный запрос с использованием EF 4.1?Могу ли я выполнить скалярный запрос в EF 4.1?
Я пробовал:
ObjectQuery<int> query = new ObjectQuery<int>("select count(*) from myTable", _context);
var result = query.Execute(MergeOption.NoTracking);
return result.FirstOrDefault();
но она возвращает ошибку: The query syntax is not valid. Near term '*'
Это единственный способ, чтобы выполнить запрос скалярного вызвать хранимый прок?
Ну, это был всего лишь пример - мне нужно выполнить сложное объединение нескольких таблиц, включая пару карт «много-ко-многим», и подумал, что было бы проще и, вероятно, более эффективно выполнять запрос напрямую. – chris
@chris У вас есть два варианта. Вы можете либо написать запрос LINQ, который выполняет соединения соответствующим образом (желательно без ключевого слова join, используя неявные объединения, поддерживаемые в LINQ), либо написать сохраненную процедуру proc. Если вы просто присоединяетесь к нескольким таблицам (многие из многих карт не выдерживают), возможно, вы создадите довольно эффективный запрос в LINQ. Если нужны временные таблицы, логика или просто тонкая настройка запроса, то сохраненный процесс будет вашим лучшим выбором. – Devin