使用@identifier进行动态表达

时间:2013-09-04 21:08:23

标签: c# linq lambda

我有一种情况,我必须在LINQ中动态生成条件 对于我可以做的每一个专栏,但对于这个专栏

p=>p.default

这里默认是关键字(Sql Sever)  我必须像这样生成

p=>p.@default

如何动态生成? 这是我为其他列生成的方式

var paramexp = Expression.Parameter(typeof(T), "o");
var proprty = typeof(T).GetProperty(columnName);
Expression.Property(paramexp, proprty)

1 个答案:

答案 0 :(得分:1)

您应该能够通过不带@符号的字符串访问该属性:

var proprty = typeof(T).GetProperty("default");

@符号只有编译器才能区分名称和保留字。