Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Извличане на връщане на записи в база данни с помощта на LinqToSql?

В случай на изпълнение на основна заявка, това може работи по този начин (със сигурност е възможно) - обаче, в случай на заявка към гола Table<T> , може всичко това първо се буферира; бихте могли да опитате да направите заявка за броя по време на итерацията или да изпълните проследяване. В този случай подозирам първо ще се буферира.

Повторно затворено:това също зависи;p Ако някой използва foreach , тогава да:тъй като foreach изрично премахва итератора чрез finally . Въпреки това! Не е гарантирано, ако някой го направи, например (много палав и небрежен):

var iter = yourData.GetEnumerator();
if(iter.MoveNext()) {
    Console.WriteLine(iter.Current.Name); // first record of, say, 20
}
// and don't dispose the iterator == bad

тогава, тъй като итераторът не a:се изхвърля, b:се изтощава и c:не се срива, той няма да се изключи правилно (някое от тези 3 условия ще затворете го правилно). Акцент:това е патологичен случай:обикновено е разумно безопасно да се каже „ще затвори, да“.

Ако искате гарантирано небуфериране, имайте предвид, че "dapper" има това, ако зададете buffered на false :

IEnumerable<Customer> customers = connection.Query<Customer>(
       "select * from Customer", buffered: false);

(може също да обработва параметрите и т.н.)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Заобикалянето на поддръжката на курсора не е внедрена функция за SQL Server Parallel DataWarehousing TDS грешка

  2. Как да изпратите по имейл резултатите от заявката като прикачен файл в SQL Server (T-SQL)

  3. datetimeoffset картографиране на хибернация

  4. Каква е употребата на курсор в SQL Server?

  5. Как да предадете стойност на име на колона като SQL аргумент с помощта на контейнери