Итак, я немного развился с 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?