Linqpad - 输出到锚点以使用标题

时间:2012-04-12 10:37:13

标签: linqpad

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

我想把这个异常放入一个这样的锚标签中,然后在需要的时候通过鼠标悬停来阅读该消息就行了......显然不行。

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();

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

编码异常消息

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

消息无法翻译表达式'RawHtml(((“h__TransparentIdentifier0.error.Exception))+   “'&gt;”))'进入SQL并且无法将其视为本地表达式。   将生成新错误

有什么想法吗? - 我也愿意接受其他解决方案。

我只是想要一个容器来代替它只是将它直接转储到输出中,因为它太大了!。

谢谢, 钢钣

1 个答案:

答案 0 :(得分:1)

您是否尝试过在最近的测试版中使用“结果到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)));
    }
}

将其添加到我的扩展程序中,您可以在任何查询中使用它。