我有兩個表,Orders和Customers,Orders引用Customers,以及它們的映射類Order和Customer。將列上的Lambda表達式添加到Linq .Where()
我想寫接收一個LINQ兩個訂單和客戶在哪裏()使用狀況的方法:即使在MSDN上的這一主題,相關的文章閱讀大量SO答案後
void ProcessOrders(Expression<Func<Order, bool>> orderCondition,
Expression<Func<Customer, bool>> customerCondition)
{
var q = Database.Query<Order>().Where(orderCondition);
q = q.Where(o => o.Customer APPLY customerCondition); // how ?
... process records in q ...
}
,看來我無法弄清楚如何在Order.Customer屬性上應用客戶條件。
(使用的DB/ORM是Oracle/DevExpress,但是我沒有使用通用解決方案,所以我沒有將它們包含在標籤中,請提及您的答案是否僅限於特定的DB或ORM)
感謝您提出JOIN,Linq似乎偶爾會雲化我的db知識。但是,DevExpress不支持連接,因此我的解決方案由customer.Where()查詢組成,並且使用該查詢的.Contains()限制訂單。醜陋的SQL,但它似乎工作。 – devio 2011-03-10 16:30:30