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

最近のベータ版で「Results to 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)));
    }
}

これをMy Extensionsに入れると、どのクエリからでも使用できます。

于 2012-04-12T11:09:38.130 に答える