0

私の監督者は、格納されている xml ドキュメントに対して xPath クエリを実行する MySql データベースでクエリを実行できるという印象を受けています。

私が関心を持っているテーブルは Responses と呼ばれ、次の列があります

    UserId, UploadTime, RawXml

特定のユーザーのすべての応答を既に取得しています

     public ActionResult UserResponses(Guid userid)
     {
        var allResponses = ZodiacData.Responses;
        var userResponses = (from r in allResponses
                        where r.UserId == userid
                        select r)
        //...populate model here....
         return PartialView("_responseTable", responsesmodel)
     }

ただし、RawXml のルート ノードで参照されている特定のアンケートに対するすべての回答を取得しようとしています (qid および qver によって、以下の例を参照してください)。ルート ノード:

     <response qid="5" qver="3" date="..-..-.." qname="full"> 

asp.netでそれを行う方法を知っている人はいますか?上記の関数のクエリに何を追加すればよいですか? オンラインの適切な種類の記事へのポインタであっても、どんな助けも素晴らしいでしょう. ありがとうございました!

4

1 に答える 1

2

はい、データベース内の XML データに対して XPath クエリを実行することは可能ですが、EF はそれをサポートしていないため、そのために EF を使用することはできません。データベース クエリで XPath を使用する場合は、SQL を直接記述する必要があります。

.NET 4.5 では、テーブル値の SQL 関数をマップし、その関数内にその XPath クエリを非表示にできるため、この点を少し変更する必要があります。

于 2012-08-08T15:42:23.117 に答える