1

Я прочитал это article при использовании LINQ s для выполнения Joins. Мне было интересно, насколько это выгодно, если бы не написать хранимую процедуру, которая бы присоединилась к таблицам? Может ли это вызвать какие-либо проблемы с производительностью, используя объединения с LINQ?LINQs Присоединяется к хранимым процедурам Присоединяется

UPDATE:

Таким образом, используя это в качестве примера:

var employeeInfo = 
       from employee in employees 
       join addInfo in additionalInfo on employee.ID equals addInfo.CategoryID into allInfo 
       select new { CategoryName = category.Name, Products = allInfo}; 

Будет ли это просто join польза мне, как проставление к stored procedure? Я знаю, что в зависимости от размера таблиц и количества таблиц, которые вы можете захотеть, join может иметь большое значение, когда следует использовать LINQ против store procedure. Что было бы хорошим «эмпирическим правилом» на количество таблиц и размеров, которые следует использовать для LINQ, а при выполнении LINQ соединения становятся слишком сильными?

+0

Этот вопрос - способ открыть. Это зависит от конкретного экземпляра и того, как вы пишете хранимую процедуру и как вы пишете linq. Если вы хотите получить реальный ответ, укажите конкретный пример модели данных sql и linq. – Hogan

ответ

1

Производительность объединений запросов в общем случае зависит от того, существуют ли соответствующие индексы в соединенных полях. Если ваш запрос производит полное сканирование таблицы, поля не индексируются по свойствам, на вашу производительность будут влиять напрямую. Выполните план объяснения, если вы обеспокоены производительностью хранимых процедур.

Что касается LINQ и присоединяется, вы не хотите этого делать.

Вот хорошая статья ниже на LINQ соединения, из статьи:

Одним из самых больших преимуществ LINQ к SQL и LINQ к Entities является навигационными свойствами, что позволяет запросы по несколько таблиц, без необходимости использования явные объединения. К сожалению, запросы LINQ часто записываются как прямой перевод SQL-запроса без использования более богатых функций, предлагаемых LINQ to SQL и LINQ to Entities.

https://coding.abel.nu/2012/06/dont-use-linqs-join-navigate/