Итак, я немного занимаюсь разработкой с Entity + LINQ и действительно начинаю задумываться о передовых методах. Я привык к модели «если мне нужно получить данные, ссылаться на хранимую процедуру». При необходимости хранимые процедуры могут быть изменены на лету и не требуют перекомпиляции кода. Я обнаружил, что мои запросы в моем коде выглядят так:
List<int> intList = (from query in context.DBTable
where query.ForeignKeyId == fkIdToSearchFor
select query.ID).ToList();
, и я начинаю задаваться вопросом, в чем разница между этим и этим:
List<int> intList = SomeMgrThatDoesSQLExecute.GetResults(
string.Format("SELECT [ID]
FROM DBTable
WHERE ForeignKeyId = {0}",
fkIdToSearchFor));
Меня беспокоит то, что я, по сути, жестко кодирую запрос в код. Я что-то упускаю? В этом суть сущности? Если мне нужно выполнить какие-либо реальные запросы, следует ли мне поместить их в sproc?