第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 A 列或 B 列的 Linq 查詢中加入

如何在 A 列或 B 列的 Linq 查詢中加入

C#
慕妹3146593 2021-11-14 14:56:11
我想對具有給定值的兩列中的任何一列執(zhí)行連接例如,如何將以下 SQL 查詢轉(zhuǎn)換為等效的 Linq(方法語法):select f.Id fId, b.Id bId from Foo finner join Bar b on f.FooVal = b.BarValCol1 or f.FooVal = b.BarValCol2我開始做以下事情:Context.Foos.Join(Context.Bars, f => f.FooVal, b => b.BarValCol1 [OR?] b.BarValCol2, (f, b) => new { f, b }).Select(bf => new { fId = bf.f.Id, bId = bf.b.Id })(在此示例中,兩列包含整數(shù)值)
查看完整描述

2 回答

?
慕碼人8056858

TA貢獻1803條經(jīng)驗 獲得超6個贊

您可以兩次使用 LINQ:


Context.Foos

  .Join(Context.Bars, f => f.FooVal, b => b.BarValCol1, (f, b) => new { f, b })

  .Select(bf => new { fId = bf.f.Id, bId = bf.b.Id }).ToList().AddRange(

  Context.Foos

    .Join(Context.Bars, f => f.FooVal, b => b.BarValCol2, (f, b) => new { f, b })

    .Select(bf => new { fId = bf.f.Id, bId = bf.b.Id })

  ).Distinct();


查看完整回答
反對 回復 2021-11-14
?
慕萊塢森

TA貢獻1810條經(jīng)驗 獲得超4個贊

INNER JOIN是一種更易讀的語法,但它可以在純 SQL 中轉(zhuǎn)換為用WHERE子句過濾的表的笛卡爾積。


所以我們可以簡單地使用一個WHERE子句并從中構(gòu)建 linq:


from x in Foo

from y in Bar

    .Where(y => y.field1 == x.field1 || y.field2 == x.field2)

Ps:INNER JOIN和WHERE在 SQL 中不是同時計算的,所以它們不等價。ON條件過濾器INNER JOIN然后WHERE應用。但即使它們當然也會有相同的結(jié)果但不相同的執(zhí)行計劃取決于數(shù)據(jù)庫


查看完整回答
反對 回復 2021-11-14
  • 2 回答
  • 0 關(guān)注
  • 201 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號