【问题标题】:Repository pattern mvc3存储库模式 mvc3
【发布时间】:2012-04-12 21:57:39
【问题描述】:

我有一个关于 c# mvc3 中存储库模式的非常基本的问题。

我使用的是 EF4.1,数据库有数百万条记录。

我需要根据某些子句从 SQL 数据库中获取一些数据。获取的数据可能数以万计,所以我当然必须使用分页和排序。

这里的问题是我需要检查以字符串形式存储在表中的 XML 中的元素以及其他一些字段。

喜欢:这是我的数据模型:

    public string ReportXML { get; set; }
    public DateTime CreatedOn { get; set; }

报告 XML 包含字段“VehicleNumber”,这是我的搜索条件以及 CreatedOn 字段。

什么应该是最好的方式来使用这个 XML 作为字符串,以便只从 DB 中获取满足子句的匹配项。

【问题讨论】:

    标签: asp.net-mvc-3 razor entity-framework-4.1 repository-pattern


    【解决方案1】:

    这不是实体框架的情况。更糟糕的是,您的数据库表没有足够的结构来处理此类查询。

    要在 SQL Server 中查询 XML 数据,您需要使用 XML SQL data type - 而不是字符串。一旦您使用 XML 数据类型,您就可以使用 XPath 或 XQuery 来查询其内容(您也可以索引内容以提高此类查询的性能)。要编写此类查询,您需要使用本机 SQL。 EF 不支持 XML 列。

    如果您想从 EF 中使用它,您可以尝试将映射表替换为视图,该视图将使用 XML 列查询表,但如果不使用存储过程或自定义 SQL 命令映射,您将无法插入或更新数据在 EDMX 文件中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多