避免解析数据库中的xml字段

时间:2012-02-22 04:39:43

标签: c# sql-server asp.net-mvc architecture devexpress

我使用XAF(DevExpress框架)作为我的第一个应用程序(它是一个CMS)。有一个Scheduler组件。 并且,它可以节省像xml这样的事件的重复发生。例如:

<RecurrenceInfo Start="02/21/2012 09:00:00" End="02/28/2012 11:30:00" Id="e8507496-2be9-4bde-90a6-9eeea98fdc5a" Range="2" />

这是Range enum(但是还存在一些其他枚举):

public enum RecurrenceRange {
        NoEndDate,
        OccurrenceCount,
        EndByDate
    }

另外,我有另一个应用程序(ASP.NET MVC)。我需要针对特定​​日期或期间(今天,明天,当月和其他)选择事件。

表中的pproblem将是10000(例如)记录然后我需要解析所有这些记录以查找请求日期的事件。我认为这是降低性能。

你看到了什么解决方案?

我认为要执行以下操作:在创建事件时(在CMS中)然后在表中添加一些持久字段并以编程方式填充它们。

如何更好地创建存储此数据的字段?

还有一个问题。 例如,Event将在5点钟和8点钟的周末进行。调度程序将在表中创建两个记录:

id      EventName      RecurrenceInfo      Description        //otherfields
1        event1            xml1            description1
2        event1            xml2            description1

问题在于Scheduler创建了一个记录,所有字段等于RecurrenceInfo。 我想创建一个id列并为所有重复记录分配相同的值。

谢谢,对不起我的英语。

1 个答案:

答案 0 :(得分:2)

您可以制作Xml typed column并使用以下查询

select
  (list of fields)
from
  MyTable
where
  MyXmlField.value('(/root[Start])', 'datetime') > '01.01.2001'