讓有:轉換表達式樹
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