Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Lợi nhuận các bản ghi cơ sở dữ liệu trả về bằng cách sử dụng LinqToSql?

Trong trường hợp thực hiện một truy vấn cơ bản, nó có thể hoạt động theo cách đó (chắc chắn là có thể) - tuy nhiên, trong trường hợp truy vấn một Table<T> trần trụi , nó có thể là tất cả các bộ đệm đầu tiên; bạn có thể thử truy vấn số lượng trong quá trình lặp lại hoặc chạy theo dõi. Trong trường hợp này, tôi nghi ngờ nó sẽ đệm trước.

Đóng lại:điều đó cũng phụ thuộc; p Nếu ai đó đang sử dụng foreach , sau đó có:kể từ foreach loại bỏ trình lặp một cách rõ ràng qua finally . Tuy nhiên! Nó không được đảm bảo nếu ai đó làm vậy, chẳng hạn (rất nghịch ngợm và lỏng lẻo):

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

sau đó, vì trình lặp không a:get disposed, b:exposed, và c:không bị lỗi, nó sẽ không tắt đúng cách (bất kỳ điều kiện nào trong 3 điều kiện đó sẽ đóng nó đúng cách). Nhấn mạnh:đây là một trường hợp bệnh lý:thông thường có thể nói "nó sẽ đóng lại, có".

Nếu bạn muốn đảm bảo không lưu vào bộ đệm, hãy lưu ý rằng "dapper" có điều đó, nếu bạn đặt buffered thành false :

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

(nó cũng có thể xử lý các tham số, v.v.)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lấy ngày bắt đầu tuần và ngày kết thúc tuần từ số tuần

  2. Các ký tự không phải số trả về số dương khi sử dụng ISNUMERIC () trong SQL Server

  3. 5 tài nguyên tuyệt vời giúp bạn phát huy vai trò giám sát cơ sở dữ liệu của mình

  4. Định kỳ không hợp lệCastException và máy chủ không thể tiếp tục giao dịch với Linq

  5. IDENTITY () so với IDENTITY () trong SQL Server:Sự khác biệt là gì?