Как стать автором
Обновить

Комментарии 9

Долгое время хотел разобраться, но было не до этого, спасибо.

Есть одно место где приходится использовать yield return - это Structured SqlParameter (мне не понятно, зачем сделано именно так, видно как-то связано с переиспользованием SqlDataRecord), будет ли хоть какой-то толк если явно переписать этот yield return на свой класс?

Что вы понимаете под "приходится использовать yield return"? Согласно документации, Structured SqlParameter принимает либо DataTable, либо DbDataReader (произвольный).


Где тут в принципе можно использовать yield return?

Вполне себе он принимает IEnumerable<SqlDataRecord> и если вы откроете официальный пример, то там будет yield return. И какие преимущества в использовании DataTable или DbDataReader?

Хм, не вижу на вот этой странице — https://learn.microsoft.com/en-us/dotnet/framework/data/adonet/sql/table-valued-parameters — никакого упоминания ни IEnumerable<SqlDataRecord>, ни yield return.


Но если так можно и вы проверяли — почему бы и нет? Это точно удобнее чем собирать свой DbDataReader.


А вот если стриминг данных в запрос без промежуточного буфера вам не важен, то DataTable удобнее.

Забавно, видимо я какое другое место смотрел, но уже не могу вспомнить какое

НЛО прилетело и опубликовало эту надпись здесь

Трудно не согласится :)

Yield return оказался очень удобен для получения сообщений о ходе выполнения задачи в сервисе через открытое gRPC соединение.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий