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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Linq到實(shí)體-SQL“in”子句

Linq到實(shí)體-SQL“in”子句

明月笑刀無情 2019-06-26 16:06:25
Linq到實(shí)體-SQL“in”子句在T-SQL中,可以有如下所示的查詢:SELECT * FROM Users WHERE User_Rights IN ("Admin", "User", "Limited")如何在LINQto實(shí)體查詢中復(fù)制?有可能嗎?
查看完整描述

3 回答

?
波斯汪

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超4個(gè)贊

你需要改變它的思維方式。您不是在預(yù)定義的一組可應(yīng)用用戶權(quán)限中“in”查找當(dāng)前項(xiàng)的用戶權(quán)限,而是詢問預(yù)定義的一組用戶權(quán)限是否包含當(dāng)前項(xiàng)的適用值。這與在.NET中的常規(guī)列表中查找項(xiàng)的方式完全相同。

使用LINQ有兩種方法,一種使用查詢語法,另一種使用方法語法。本質(zhì)上,它們是相同的,可以根據(jù)您的喜好交替使用:

查詢語法:

var selected = from u in users               where new[] { "Admin", "User", "Limited" }.Contains(u.User_Rights)
               select uforeach(user u in selected){
    //Do your stuff on each selected user;}

方法語法:

var selected = users.Where(u => new[] { "Admin", "User", "Limited" }.Contains(u.User_Rights));foreach(user u in selected){
    //Do stuff on each selected user;}

我在這個(gè)實(shí)例中的個(gè)人偏好可能是方法語法,因?yàn)槲也恍枰峙渥兞?,而是可以?duì)這樣的匿名調(diào)用執(zhí)行以下操作:

foreach(User u in users.Where(u => new [] { "Admin", "User", "Limited" }.Contains(u.User_Rights))){
    //Do stuff on each selected user;}

從語法上看,這看起來更復(fù)雜,您必須理解lambda表達(dá)式或委托的概念,才能真正了解發(fā)生了什么,但正如您所看到的,這將代碼壓縮得相當(dāng)多。

所有這些都取決于您的編碼風(fēng)格和偏好-我的三個(gè)示例所做的事情都略有不同。

另一種方法甚至不使用LINQ,您可以使用相同的方法語法將“WHERE”替換為“FindAll”,并獲得相同的結(jié)果,這在.NET 2.0中也適用:

foreach(User u in users.FindAll(u => new [] { "Admin", "User", "Limited" }.Contains(u.User_Rights))){
    //Do stuff on each selected user;}


查看完整回答
反對(duì) 回復(fù) 2019-06-26
?
ABOUTYOU

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊

在這種情況下,我將選擇“內(nèi)加入”。如果我已經(jīng)使用包含,它將迭代6次,盡管事實(shí)是只有一個(gè)匹配。

var desiredNames = new[] { "Pankaj", "Garg" }; var people = new[]  {  
    new { FirstName="Pankaj", Surname="Garg" },  
    new { FirstName="Marc", Surname="Gravell" },  
    new { FirstName="Jeff", Surname="Atwood" }  }; var records = (from p in people join filtered in desiredNames on p.FirstName equals filtered  select p.FirstName).ToList();

含有的缺點(diǎn)

假設(shè)我有兩個(gè)List對(duì)象。

List 1      List 2
  1           12
  2            7
  3            8
  4           98
  5            9
  6           10
  7            6

使用包含,它將搜索列表2中的每個(gè)列表1項(xiàng),這意味著迭代將發(fā)生49次!


查看完整回答
反對(duì) 回復(fù) 2019-06-26
  • 3 回答
  • 0 關(guān)注
  • 488 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

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