15 Stimmen

Verwendung von XQuery in Linq To SQL?

Nehmen wir an, ich habe eine Tabelle, die eine Spalte mit Daten vom Typ XML enthält. In SQL kann ich die folgende Anweisung ausführen:

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

Die Ergebnismenge enthält nur die Datensätze, die den Kriterien entsprechen, und extrahiert einen Wert aus der XML-Datei in eine Spalte mit der Bezeichnung "Wert". Schön und einfach.

Kann das Gleiche mit Linq To SQL erreicht werden?

Ich möchte, dass SQL die schwere Arbeit übernimmt und nur Daten zurückgibt, die meinen Kriterien entsprechen, anstatt einen potenziell riesigen Datenbestand auszuwählen, zu übertragen und dann zu verarbeiten. Soweit ich sagen kann, ist dies nicht möglich, im Moment, aber ich dachte, ich sollte fragen.

(Die Umgebung ist .NET 3.5, VS2008, SQL Server 2005, falls das hilft)

5voto

nlinus Punkte 631

Ich bin mir nicht ganz sicher, ob das jetzt veraltet ist, aber laut Scott Guthrie XML-Datentypen sind:

dargestellt als Strings in LINQ to SQL Entitäten. Sie können XLINQ verwenden, um eine Abfrage auf eine XML-Spalte innerhalb Ihrer LINQ to SQL-Entität abfragen - aber diese Abfrage würde in Ihrer Middle-Tier-Umgebung erfolgen (innerhalb von ASP.NET). Sie können nicht eine Remote XQuery gegen die Datenbank ausführen und die zurückgegebenen Ergebnisse in der ersten Version.

Um Ihre Frage zu beantworten, würde ich also "nein" sagen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X