首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >查询Xml的实体框架

查询Xml的实体框架
EN

Stack Overflow用户
提问于 2012-11-25 23:14:00
回答 1查看 3.9K关注 0票数 4

我有个问题。也许你们中的一位专家能帮上忙。我正在查询的表有两个xml列。我也需要对这些列中的xml数据执行查询(在我的高级搜索功能中)。问题是,我正在使用实体框架,它不支持这一点。即使我尝试执行"ObjectQuery.Execute“,它也会导致语法错误。我在这里有什么选择?

  1. 修改表并为我需要查询的XML中的数据添加列,以便我可以使用实体框架来执行操作?
  2. 仅用于高级搜索,使用ODBC并在我能够使用SQLXml的地方执行常规查询?这里的潜在威胁是什么,比如多重连接、太多的连接、设计/架构师的厌恶等?
  3. 或者有人能对此提出更好的解决方案?

谢谢,

阿里·纳希德

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-26 02:22:06

EF将Server类型列映射到字符串。因此,对于这个定义:

代码语言:javascript
代码运行次数:0
运行
复制
CREATE TABLE [dbo].[XmlData](
[ID] [int] IDENTITY(1,1) NOT NULL,
[XmlTestColumn] [xml] NOT NULL
)

您将拥有以下实体:

代码语言:javascript
代码运行次数:0
运行
复制
public partial class XmlData
{
    public int ID { get; set; }
    public string XmlTestColumn { get; set; }
}

并且能够将字符串加载到XmlDocument,等等。这是一种方法。

如果您喜欢针对Server发出原生XML查询,则需要

  1. 定义或选择合适的实体类型;
  2. 在XML查询中使用Database.SqlQuery: var query =context.Database.SqlQuery(@“选择it.Id、it.Name、it.SomeData、t2.交叉应用Table1中的其他数据.”);

ObjectQuery与概念模型相反,不支持本机查询。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13556604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档