让有:转换表达式树
Expression<Func<Message, bool>> exp1 = x => x.mesID == 1;
Expression<Func<MessageDTO, bool>> exp2 = x => x.mesID == 1;
现在我需要传递给EXP1问题_db.Messages.where(exp1);
是我只有EXP2,我需要的类型转换为信息,所有属性都是一样的!
现在我这样做:
var par = Expression.Parameter(typeof(Message));
var ex = (Expression<Func<Message, bool>>)Expression.Lambda(exp2.Body, par);
问题,这是输入放慢参数得到改变,是的!但lambda“x.mesID”体内的x是旧类型的。
任何方式改变身体的所有参数类型或改变输入参数在它离开它反映身体呢?
我想这是我一直对LINQ的一个大问题,因为在图层之间我无法传递生成的类,因为这会使图层耦合,所以我必须制作轻量级类,现在我该如何使用方法像_db.Messages.where();从业务层?!!而busniess层不知道关于消息类型的任何信息,它只知道MessageDTO。
(添加示例) – 2010-09-08 12:49:37