我有一段代码使用DASL查询来查询保存在RDOFolder中项目的用户属性中的值,如下所示:
java.lang.reflect
但是,现在我需要将保存在用户属性中的数据迁移到RDOMail项的rdoFolder.Items.Find("\"http://schemas.microsoft.com/mapi/string/{00020329-0000-0000-C000-000000000046}/MyUserPropertyName/0x0000001F\"='queryValue'"
属性中。我想知道是否有类似的方法来查询此Field
属性以获得快速性能。当有数万个项目时,循环浏览文件夹中的所有项目进行值比较可能会非常慢。
答案 0 :(得分:0)
您可以将相同的DASL名称传递给RDOMail.Fields
索引属性。
答案 1 :(得分:0)
我发现RDOFolder.Items.Find
方法还会搜索通过RDOMail.Fields
索引属性保存的值。正如德米特里在评论中所说的那样。
例如,如果我设置如下值:
myRdoMail.Fields["http://schemas.microsoft.com/mapi/string/{8d736f90-8f45-4591-81aa-c85a98f1261b}/MyUserProperty"] = "MyValue";
然后,我可以通过执行以下操作找到此项目:
var result = myRdoFolder.Items.Find("\"http://schemas.microsoft.com/mapi/string/{8d736f90-8f45-4591-81aa-c85a98f1261b}/MyUserProperty\"='MyValue'");