Giả sử tôi có một bảng có một cột dữ liệu kiểu XML. Trong SQL, tôi có thể thực hiện câu lệnh sau:Sử dụng XQuery trong LINQ to SQL?
select top 10 *,
Content.value('(/root/item/value)[1]', 'float') as Value
from xmltabletest
where Content.value('(/root/item/MessageType)[1]', 'int') = 1
Tập kết quả chỉ chứa các bản ghi khớp với tiêu chí và trích xuất một giá trị từ XML thành cột được gọi là 'Giá trị'. Đẹp và đơn giản.
Có thể đạt được điều tương tự với LINQ to SQL không?
Tôi muốn SQL thực hiện việc nâng hạng nặng và chỉ trả về dữ liệu phù hợp với tiêu chí của tôi thay vì phải chọn, chuyển và sau đó xử lý một đoạn dữ liệu khổng lồ. Theo như tôi có thể nói điều này là không thể vào lúc này, nhưng tôi nghĩ tôi nên hỏi.
(Môi trường là .NET 3.5, VS2008, SQL Server 2005 nếu điều đó giúp)
Tôi đã gặp các vấn đề tương tự và phải thực hiện nó bằng cách sử dụng các procs được lưu trữ hoặc thực hiện các truy vấn xquery thông qua datacontext –
Thực ra, chúng tôi sẽ sử dụng phương thức ngữ cảnh dữ liệu. Loại hút, nhưng nó được công việc làm và chúng tôi chỉ có một thực thể với một cột XML. Nên dễ dàng để giữ sạch sẽ và có tổ chức. –