Tôi là thương hiệu mới với LINQ
và đang cố gắng truy vấn DataSet
của mình bằng nó. Vì vậy, tôi đã theo dõi this example vào thư và nó không hoạt động.LINQ to DataSet, DataTable.AsEnumerable() không được công nhận
Tôi biết rằng DataTable
cần .AsEnumerable
cuối cùng nhưng không được nhận dạng bởi IDE
. Tôi đang làm gì sai? Tôi có thiếu một tham chiếu/nhập khẩu không được hiển thị trong ví dụ (không phải là lần đầu tiên một ví dụ MSDN không hoàn toàn đúng), và nếu có, cái nào? Hay nó là cái gì khác hoàn toàn?
Sample Code:
Imports System
Imports System.Linq
Imports System.Linq.Expressions
Imports System.Collections.Generic
Imports System.Data
Imports System.Data.SqlClient
Imports System.Data.Common
Imports System.Globalization
//Fill the DataSet.
Dim ds As New DataSet()
ds.Locale = CultureInfo.InvariantCulture
//See the FillDataSet method in the Loading Data Into a DataSet topic.
FillDataSet(ds)
Dim products As DataTable = ds.Tables("Product")
Dim query = From product In products.AsEnumerable() _
Select product
Console.WriteLine("Product Names:")
For Each p In query
Console.WriteLine(p.Field(Of String)("Name"))
Next
Các tài liệu tham khảo trong dự án của tôi là:
System
System.Data
System.Drawing
System.Windows.Forms
System.Xml
Cảm ơn, điều đó hoạt động ngay bây giờ! Tôi đã xé tóc của tôi trên cái này. :) +1 cho tất cả mọi người cho System.Data.DataSetExtensions, nhưng bạn nhận được 'chấp nhận' cho lời giải thích tốt hơn nhiều. Cảm ơn một lần nữa. – GSTD
Tại sao vẫn cần phải thêm câu lệnh sử dụng ngay cả khi nó đã được đưa vào tham chiếu của dự án? – Charmie
@Charmie câu lệnh 'using' làm cho vùng tên có sẵn trong tệp/lớp. Bởi vì nó là một phương thức mở rộng, bạn không thể tham chiếu nó bằng cách sử dụng không gian tên đầy đủ (khi được sử dụng như một phần mở rộng) và do đó phải có không gian tên được bao gồm. – tvanfosson