Я немного погуглил, но не нашел ничего полезного в отношении различий между DbContext.SqlQuery и ObjectContext.ExecuteFunction. В настоящее время я использую .SqlQuery, но мой коллега использует .ExecuteFunction, поэтому мне стало любопытно, почему один может использоваться вместо другого.
Есть ли какие-то преимущества / недостатки при звонке друг другу или все дело в предпочтениях?
Нет особых требований, за исключением того, что хранимые процедуры вызываются с параметрами и возвращают один или список объектов. Ничего фантастического.
Спасибо.
Согласованный. Вот почему я в первую очередь хотел знать. У меня нет личных предпочтений, но я подумал, что проверю, рекомендован ли один из них по сравнению с другим и почему, но если это означает, что я должен использовать ExecuteFunction, чтобы он соответствовал тому, что уже есть, меня это устраивает. :)
Кажется, здесь не так много комментариев, но я считаю, что ObjectContext, по-видимому, является частью нижнего уровня структуры, а DbContext находится на более высоком уровне абстракции. Я бы, вероятно, использовал то, что было наиболее подходящим, учитывая остальную часть стратегии доступа к данным в проекте / решении, но в равной степени я часто продвигаю продвижение до абстракций более высокого уровня в большинстве случаев, то есть «использовать ORM, а не DataReader», поэтому Я бы сказал: «Используйте DbContext». Мнение хоть ..





ObjectContext - это базовый API в EF4 - EF6. Новый DbContext API был расположен поверх ObjectContext API, когда был представлен EF 4.1.
Когда EF был переписан для создания EF Core, DbContext API стал основным / единственным API, а ObjectContext не был перенесен.
Итак, если ether API будет работать достаточно хорошо, вам, вероятно, следует отдать предпочтение DbContext API для возможной совместимости с EF Core.
Я думаю, что наиболее значительным преимуществом обсуждения с вашим коллегой и выбора одного из них вместо того, чтобы писать и то, и другое в код, является то, что вы будете последовательны. Мне очень неприятно поддерживать проекты других людей, в которых присутствует несколько различных способов выполнения эквивалентных задач, и я уверен, что я не единственный, кто раздражен огромными различиями в стилях в долгосрочных проектах разработчиков, в которых каждый новый разработчик добавляет к команда хотела дополнить его резюме другим способом