1

我有一个存储异常消息的数据库。我想创建一个获取这些异常的查询,但我不想转储大量文本,而是希望它是“按需”的。

我认为将异常放入这样的锚标记中,然后在需要时通过将鼠标悬停在上面来阅读消息会起作用......显然不是。

var logsForErrors = (from error in Logs
         select new {
              error = LINQPad.Util.RawHtml("<a title='"+ error.Exception+"'></a>"),
              errorDate = error.Date,
              errorMessage = error.Message
         }).Take(10);

logsForErrors.Dump();

这是抛出异常(大声笑) - “无法解析自定义 HTML:”

编码异常消息

...RawHtml("<a title='"+ Uri.EscapeDataString(error.Exception)+"'></a>")

消息无法将表达式 'RawHtml((("h__TransparentIdentifier0.error.Exception)) + "'>"))' 转换为 SQL 并且无法将其视为本地表达式。将生成新错误

有任何想法吗?- 我也愿意接受替代解决方案。

我只想要一个消息容器,而不是直接转储到输出中,因为它太大了!

谢谢,科汉

4

1 回答 1

2

您是否尝试过在最近的测试版中使用“结果到 DataGrids”模式?它可能只是你需要的,而无需编写任何其他内容。

编辑:您的错误可能是由于在没有转义文本的情况下发出 HTML。最简单的解决方案是使用 XElement 而不是字符串调用 Util.RawHtml。您可以编写一个扩展方法来执行您想要的操作,如下所示:

public static class Extensions
{
    public static object Tooltipize (this string data)
    {
        if (string.IsNullOrEmpty (data) || data.Length < 20) return data;
        return Util.RawHtml (new XElement ("span", new XAttribute ("title", data), data.Substring (0, 20)));
    }
}

把它放到我的扩展中,你可以从任何查询中使用它。

于 2012-04-12T11:09:38.130 回答