我想知道是否有人可以向我解释检索
的缺点(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);
答案 0 :(得分:1)
感谢您轻松使用实际表达式而不是解析文本。 对于任何有兴趣的人,我发布了一个指向我的sqlexpression项目初稿的链接。Google Code - SqlExpression.cs
创建的参数是Dapper的DynamicParameters,但可以很容易地换成标准的sql参数
尚未进行大量测试,但查询似乎在此阶段表现相当不错