Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using XQuery in Linq To SQL?

Let's say I have a table that has a column of XML type data. Within SQL, I can execute the following statement:

select   top 10  *,
         Content.value('(/root/item/value)[1]', 'float') as Value
from     xmltabletest
where    Content.value('(/root/item/MessageType)[1]', 'int') = 1

The result set contains only the records matching the criteria, and it extracts a value from the XML into a column called 'Value'. Nice and simple.

Can the same thing be achieved with Linq To SQL?

I'd like to get SQL to do the heavy lifting and only return data matching my criteria rather than having to select, transfer, and then process a potentially massive chunk of data. As far as I can tell this isn't possible at the moment, but I thought I should ask.

(The environment is .NET 3.5, VS2008, SQL Server 2005 if that helps)

like image 356
Curtis Batt Avatar asked Oct 17 '08 22:10

Curtis Batt


People also ask

How to write select query using LINQ?

LINQ query syntax always ends with a Select or Group clause. The Select clause is used to shape the data. You can select the whole object as it is or only some properties of it. In the above example, we selected the each resulted string elements.

How to get data from LINQ query?

Obtaining a Data Source In a LINQ query, the first step is to specify the data source. In C# as in most programming languages a variable must be declared before it can be used. In a LINQ query, the from clause comes first in order to introduce the data source ( customers ) and the range variable ( cust ).

On which datasources do LINQ queries work?

In a LINQ query, you are always working with objects. You use the same basic coding patterns to query and transform data in XML documents, SQL databases, ADO.NET Datasets, . NET collections, and any other format for which a LINQ provider is available.

Is LINQ to SQL still used?

LINQ to SQL was the first object-relational mapping technology released by Microsoft. It works well in basic scenarios and continues to be supported in Visual Studio, but it's no longer under active development.


1 Answers

I'm not exactly sure if this is out of date now, but according to Scott Guthrie XML datatypes are:

represented as strings in LINQ to SQL Entities. You could use XLINQ to query on an XML column within your LINQ to SQL entitiy - but this querying would happen in your middle-tier (within ASP.NET). You can't execute a remote XQuery against the database and filter returned results based on that in the first release.

So in answer to your question, I'd say "no."

like image 109
nlinus Avatar answered Sep 29 '22 03:09

nlinus