C# のコード ビハインドから SQL データベースの XML 列をクエリしています。一意のノードのみのリストを取得しようとしています。
ItemAttribute
テーブルには、XML タイプの列に対応する多数の ItemCodes(PK)があります。
XML ドキュメントに 10 行と 3 つのノードがあるとします。以下で使用する方法から30の結果が得られます。一意のノードのみを返したいのですが、各ノードには一意のデータがあるため、ノード内の値の一意性に応じて任意の数の結果が返されます。
var data = (from x in Ctx.ItemAttributeDatas
select x).ToList();
var xml = from x in data
where x.AttributeData.Descendants() != null
select x.AttributeData as XElement;
IEnumerable<XNode> nodes = (from x in xml.Nodes()
select x);
これはどのように行うことができますか?使用してみ.Distinct()
ましたが、上記の問題は同じ結果でした。
また、データをxmlからノードに取得するためのよりクリーンな方法はありますか?