LINQ to SQL không hỗ trợ truy cập (nghĩa là, không có nhà cung cấp truy cập/máy bay phản lực cho LINQ), nhưng bạn có thể truy vấn một tập dữ liệu với LINQ. Điều này có nghĩa rằng bạn điền vào DataSet của bạn với bất kỳ dữ liệu có thể từ cơ sở dữ liệu của bạn mà bạn có thể cần trong kết quả của bạn, và sau đó bạn lọc ở phía khách hàng. Sau khi bạn đã gõ một DataSet, và bạn Fill() nó với một TableAdapter, bạn làm một cái gì đó như thế này:
Bạn sẽ phải quyết định xem điều này có đáng không. Bạn sẽ phải điền vào Số liệu của mình với tất cả các dấu ngoặc kép, sau đó sử dụng LINQ để lọc chỉ những dấu ngoặc kép sau năm 1995. Đối với một lượng nhỏ dữ liệu, chắc chắn, tại sao không? Nhưng đối với một lượng dữ liệu rất lớn, bạn sẽ cần phải đảm bảo rằng nó sẽ không quá chậm.
Nếu bạn đang sử dụng Số liệu, bạn có thể viết truy vấn tùy chỉnh trở thành các phương pháp TableAdapter mới. Vì vậy, bạn có thể đặt đúng SQL cho truy vấn của bạn trong một phương thức FillByYear() trong TableAdapter của bạn và sử dụng nó để điền vào DataTable đã nhập của bạn. Bằng cách đó, bạn chỉ lấy lại dữ liệu bạn cần.
Nếu bạn đi tuyến đường này, hãy nhớ rằng Access/Jet sử dụng thông số vị trí, không phải thông số được đặt tên. Vì vậy, thay vì
SELECT * FROM Quotes WHERE Year(QuoteDate) > @Year
bạn muốn sử dụng một cái gì đó như thế này:
SELECT * FROM Quotes WHERE Year(QuoteDate) > ?
Nguồn
2008-10-11 21:09:46
Xem câu trả lời của tôi ở đây https://stackoverflow.com/questions/295772/query-microsoft-access-mdb-database- sử dụng-linq-và-c-sharp/46945250 # 46945250, bằng cách sử dụng VB.net trên Windows Forms –