Как использовать Entity + LINQ не только по сути жестко кодировать мои запросы?

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

10
задан James Wiseman 16 January 2012 в 12:16
поделиться