首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取代码中的所有记录

获取代码中的所有记录
EN

Stack Overflow用户
提问于 2013-09-11 16:54:15
回答 1查看 1.2K关注 0票数 0

在我试图从移动应用程序中模仿的网站上,有一个umbraco表单输入过程。因为我有一个应用程序与之对话的web服务,该web服务托管在web站点的位置,并使用Umbraco.Forms.Storage以编程方式输入Record

这一切都很好,来自移动应用程序的条目被添加到Umbraco-Contour中的form Enties表中。

但是,我想检查正在输入的条目不会与已经输入的条目重复。因此,我想获取与特定字段条目匹配的所有输入记录。我不是使用XSLT来完成这些工作,而是在C#中使用Umbraco库完成这项工作。

代码语言:javascript
复制
private List<Record> GetRecordsMatchingEmail(string sEmail)
{
    RecordStorage oRStorage;
    List<Record> oMatchedRecords;
    RecordField oField;
    //
    oRStorage = new RecordStorage();
    oMatchedRecords = new List<Record>();
    foreach (var oRec in oRStorage.GetAllRecords(new Guid(FORM_GUID)))
    {
        oField = oRec.RecordFields[new Guid(EMAIL_FIELD_GUID)];
        //
        if (oField.Values.Count < 1 || !sEmail.Equals(oField.Values[0] as string))
            continue;
        //
        oMatchedRecords.Add(oRec);
    }
    //
    return oMatchedRecords;
}

当我在web服务上运行此方法时,连接总是超时。当我尝试跟踪SQL事件探查器发生的事情时,我发现数据库上有很多访问不同的表。我不明白当这段代码运行时会发生什么,因为我期望它只抓取为指定表单输入的所有记录。在网站的/Umbraco/Contour部分执行类似的操作会导致一个完全不同的SQL命令(如profiler中所示),那么为什么代码版本不执行相同类型的查询呢?

我所追求的是一种方法来提取为特定表单输入的所有记录。我认为GetAllRecords(Guid)使用forms Guid可以做到这一点。有没有人用纯C#代码做过类似的事情?

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2014-08-11 22:47:29

您可以尝试使用:

代码语言:javascript
复制
oField.GetRecordField["Email"].ValuesAsString()

而不是:

代码语言:javascript
复制
oField.Values[0] as string

但我不确定这会不会有帮助

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

https://stackoverflow.com/questions/18736722

复制
相关文章

相似问题

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