LINQ式Body ToString

dapper lambda linq regex string

質問

誰かが私に検索の欠点を説明できるかどうか疑問に思っています

(Expression<Func<T, bool>>) Expression.Body

実行時にこれを文字列として操作しますか?

例えば以下のように与えられる

public partial class Tests : Form
{
    public Tests()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        TestClass t = new TestClass();
        textBox1.Text = t.Evaluate(templates => templates.usable == true && templates.name == "tc1");
    }       
}

public class TestClass
{
    public string name { get; set; }
    public bool usable { get; set; }
}

public static class Helpers
{
    public static string Evaluate<T>(this T input,Expression<Func<T, bool>> Expression) where T : class
    {

        return Expression.Parameters.Single().Name + " " + Expression.Body;

    }
}

それは返す

templates ((templates.usable == True) AndAlso (templates.name == "tc1"))

私はどのような種類のパフォーマンスの問題がこれを取得し、Regexの式を解析してから発生するかもしれないのだろうかと思います

なぜその質問に答えて?私はDapperで少し遊んでいますが、既存の拡張機能(私が見たもの)のどれも私にアピールしません

私はそれをEFと同様の方法で操作することができるようにしたいと考えています

_repo.Select(templates=>templates.usable== true && templates.id == templateId);

人気のある回答

テキストを解析するのではなく、実際の式を使用するようにしてくれてありがとう。興味のある方は、私のsqlexpressionプロジェクトの最初の草稿へのリンクを掲載しました。 Googleコード - SqlExpression.cs

作成されるパラメータはDapperのDynamicParametersですが、標準のsqlパラメータで簡単にスワップできます

まだ多くのテストを行っていませんが、この段階でクエリが合理的にうまく実行されているようです



ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ