使用实体框架在asp.net mvc3中对多个xml文档运行xpath查询

使用实体框架在asp.net mvc3中对多个xml文档运行xpath查询,asp.net,mysql,asp.net-mvc-3,xpath,entity-framework-4,Asp.net,Mysql,Asp.net Mvc 3,Xpath,Entity Framework 4,我的主管认为,可以在MySql数据库上运行查询,该数据库可以对存储的xml文档运行xPath查询 我关心的表称为Responses,它有以下列 UserId, UploadTime, RawXml 我已经获得了特定用户的所有响应 public ActionResult UserResponses(Guid userid) { var allResponses = ZodiacData.Responses; var userRespon

我的主管认为,可以在MySql数据库上运行查询,该数据库可以对存储的xml文档运行xPath查询

我关心的表称为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中做到这一点吗?我应该在上述函数的查询中添加什么?任何帮助都将是巨大的,即使只是一个指向正确类型的在线文章的指针。
谢谢大家!

是的,可以对数据库中的XML数据运行XPath查询,但不能使用EF,因为EF不支持这一点。如果要在数据库查询中使用XPath,必须直接编写SQL


.NET 4.5应该改变这一点,因为您可以映射表值SQL函数并将XPath查询隐藏在该函数中。

为什么不按照代码所示的那样做,将xml反序列化为模型,然后在该模型上运行linq查询?数据结构更简单,更易于维护。Shey@Ladislav,你知道一个很好的教程/示例,说明如何直接编写SQL吗?这是否意味着我需要完全忽略实体框架?不,我不知道MySQL教程-使用谷歌。您不需要忽略EF—您只需要通过SQL使用XPath条件执行查询。您仍然可以使用EF的基础结构来执行SQL—例如。