使用实体框架在asp.net mvc3中对多个xml文档运行xpath查询
我的主管认为,可以在MySql数据库上运行查询,该数据库可以对存储的xml文档运行xPath查询 我关心的表称为Responses,它有以下列使用实体框架在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
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—例如。