添加包含("string")功能Azure Table LINQpad查询?



好的,由于 Azure 表查询子集约束,这不起作用:

var res = tcmarketnlog.Where(t => t.Level == level && t.Message.Contains("151207151510") && t.Timestamp >= start && t.Timestamp <= end).Take(1000);

t.Message.Contains("151207151510")炸弹。但是,必须有某种方法可以在 LINQpad 中搜索结果,并在消息中仅选择具有此字符串的结果。

例如,我无法将结果强制转换为变量,然后可以使用 LINQ 再次查询该变量。有什么提示吗?

如果无法对 Azure 表可查询对象使用string.Contains,仍可将其转换为可枚举,然后应用其他筛选器以仅显示所需的结果。 但是,这意味着它将通过网络返回满足其他条件的所有记录,然后在客户端将它们限制为仅那些 Message 字段包含指定字符串的行。

var res = tcmarketnlog.Where(t => t.Level == level && t.Timestamp >= start && t.Timestamp <= end).AsEnumerable().Where(t => t.Message.Contains("151207151510")).Take(1000);

也许消息为空。只需在包含之前检查消息空即可。请尝试以下操作:

        var res = tcmarketnlog.Where(t => t.Level == level 
                                     && t.Message != null && t.Message.Contains("151207151510") 
                                     && t.Timestamp >= start && t.Timestamp <= end).Take(1000);

最新更新