Lambda表示式多表連線的左連

2022-01-15 05:39:22 字數 1359 閱讀 7020

在網上有很多人都在查詢lambda的例子,但是完整的例子不多,況且還有相當一部分幾乎完全不能用,linq的左連倒是挺多的,但是linq的**相對比較少,一旦遇到重複資料的時候,不容易被過濾,lambda就可以輕鬆避免這個讓人頭疼的問題。廢話不多說,看下面的例子吧。

var model_main = from o in db.main where o.orderisdel == 0 select o;

var model_user = from u in db.user select u;

var model_device = from d in db.device select d;

var model_team = from t in db.team select t;

var sub_model = from sub in db.suborder select sub;

var model_order_user = model_main.groupjoin(model_user, o => o.orderuserid, u => u.userid, (o, u) => new ).selectmany(p => p.u.defaultifempty(), (p, u) => new ordermodel()

);var model_order_user_device = model_order_user.groupjoin(model_device, o => o.orderdeviceid, d => d.deviceid, (o, d) => new ).selectmany(p => p.d.defaultifempty(), (p, d) => new ordermodel()

);var model_order_user_device_team = model_order_user_device.groupjoin(model_team, o => o.orderteamid, t => t.teamid, (o, t) => new ).selectmany(p => p.t.defaultifempty(), (p, t) => new ordermodel()

); var model = model_order_user_device_team.groupjoin(sub_model, o => o.orderid, s => s.suborderparentid, (o, s) => new ).selectmany(p => p.s.defaultifempty(), (p, s) => new ordermodel()

);

groupjoin前面部分是左連的集合,裡面的引數分別是右邊的集合、左邊集合的外來鍵、右邊集合的主鍵、兩個集合的物件、查詢的集合。

寫的不好,如果有何問題,大家可以一起討論,這個只是作為筆記使用而已。

lambda表示式 lambda表示式

1.概述 c 11 中的 lambda 表示式用於定義並建立匿名的函式物件,以簡化程式設計工作。lambda 的語法形式如下 函式物件引數 操作符過載函式引數 mutable 或 exception 宣告 返回值型別可以看到,lambda 主要分為五個部分 函式物件引數 操作符過載函式引數 muta...

Lambda表示式和Lambda表示式樹

原版來自 linq學習筆記之二 lambda表示式和lambda表示式樹 lambda 表示式 lambda expressions 是linq實現的另一特性。lambda表示式的作用就是使用使用函式式語法,將方法實現關聯到委託例項。在使用查詢表示式 query expressions 時,查詢表示...

Lambda表示式表示式樹

在c 3.0中,繼匿名方法之後出現了lambda 表示式,使表達更為簡潔 快捷。lambda 表示式使用lambda 運算子 來定義,語法如下 引數列表 lambda 運算子的左邊是輸入引數,定義lambda表示式的接收引數列表,右邊包含表示式或語句塊,表示將表示式的值或語句塊返回的值傳給左邊的引數...