在 C# 中获取 HP TRIM 容器的内容

Getting contents of HP TRIM Container in C#

我有以下代码块,连接到我们的 HP TRIM 数据库,并试图提取特定容器的所有内容。

using HP.HPTRIM.SDK;

Database db = new Database();
db.WorkgroupServerName = ConfigurationManager.AppSettings["TrimWorkgroup"];
db.Id = ConfigurationManager.AppSettings["TrimDBID"];
db.WorkgroupServerPort = Int32.Parse(ConfigurationManager.AppSettings["TrimPort"]);

TrimMainObjectSearch Contents = new TrimMainObjectSearch(db, baseObjectTypes.Record);
Contents.SetSearchString("container:" + ContainerNum);

看看我能找到的任何 doco,似乎只有使用基于字符串的搜索的参考,但是有一个问题:

这种基于字符串的搜索需要很长时间。每个容器大约 25 秒,这太长了。在 HP TRIM [7.3.4.5739] 中使用 "string-based search editor" 需要同样大量的时间,但是使用 "boolean search editor" 方法,选择 "Contained Within" 并输入相同的容器编号,结果在一秒钟内返回。

所以,我的问题是,有没有办法在 C# 中对 "Contained within" 进行布尔搜索?

一如既往,我一直很困惑,直到我偶然发现了这个文档:http://community.hpe.com/hpeb/attachments/hpeb/itrc-1015/11992/1/TRIM7.31_.NETSDK.pdf,其中记录了方法:

Contents.SelectThoseWithin(CHR);

这行得通,因为我已经有了我需要的所有容器。这 returns 在几毫秒内。

您还可以在条件中使用 = 运算符代替 :container: 将匹配字符串中的任意点,而 container= 将执行精确匹配,对于像这样的 ID 字段,速度要快得多。