草庐IT

where-clause

全部标签

c# - 从 Where(l => l.Side == 'A' ) 与 Where(l => l.Side.Equals ('A' ) 产生的不同 SQL

我一直在LinqPad中试验查询。我们有一个表Lot,其中有一列Sidechar(1)。当我编写linqtosql查询Lots.Where(l=>l.Side=='A')时,它会生成以下SQL--RegionParametersDECLARE@p0Int=65--EndRegionSELECT...,[t0].[Side],...FROM[Lot]AS[t0]WHEREUNICODE([t0].[Side])=@p0但是,使用Lots.Where(l=>l.Side.Equals('A')),它产生--RegionParametersDECLARE@p0Char(1)='A'--End

c# - lambda 表达式使用 select 和 where 子句连接多个表

我有三个表的多对多关系我已经加入了三个表并选择了我想要的值但是现在我需要从查询结果中选择一行通过指定id这是我的三个表这是使用LINQlambda表达式的查询:DataBaseContextdb=newDataBaseContext();publicActionResultIndex(){varUserInRole=db.UserProfiles.Join(db.UsersInRoles,u=>u.UserId,uir=>uir.UserId,(u,uir)=>new{u,uir}).Join(db.Roles,r=>r.uir.RoleId,ro=>ro.RoleId,(r,ro)=

c# - LINQ:仅在值不为空时添加 where 子句

我知道一个典型的方式是这样的:IQueryablequery=fromstaffindataContext.Staffs;if(name1!=null){query=fromstaffinquerywhere(staff.name==name1);}但是,从我们从其他开发人员那里接手的程序中,我们看到了这样的代码:IQueryablequery=fromstaffindataContext.Staffs;query=fromstaffinquerywhere(name1==null||staff.name==name1);如果这是一个普通的SQL语句,我肯定会说第二个是不好的做法。因为

c# - LINQ SelectMany 和 Where 扩展方法忽略空值

我有下面的示例代码,我很想知道如何使它更清晰,可能是通过更好地使用SelectMany()。此时QuestionList属性不会为null。我想要的只是一个answerRows列表,它们不是null,但Questions有时也可以是null。IEnumerablequestions=survey.QuestionList.Where(q=>q.Questions!=null).SelectMany(q=>q.Questions);if(questions==null)returnnull;IEnumerableanswerRows=questions.Where(q=>q.Answer

c# - 如何在 LINQ to Entities 中执行 SQL "Where Exists"?

我真的很想做这样的事情:Select*fromAjoinBonA.key=B.keyjoinConB.key=C.key--propagatedkeyswhereexists(selectnullfromBwhereA.key=B.keyandB.Name="Joe")andexists(selectnullfromCwhereB.key=C.keyandC.Name="Kim")使用EntityFramework4和C#的linq语句会是什么样子?更新:显然.Contains()会产生“WhereExists”结果。所以,另一个尝试(我不知道这是否会编译LOL):varinner1=

c# - 在单个 LINQ 语句中使用 .Select 和 .Where

我需要使用LINQ从特定表中收集DistinctId。问题是我还需要一个WHERE语句,它应该只根据我设置的要求过滤结果。对于必须如此频繁地使用LINQ来说相对较新,但我或多或少地使用了以下代码:privatevoidWriteStuff(SqlHelperdb,EmployeeHelperemp){StringcheckFieldChange;AnIListtableClass=newAnIList(db,(int)emp.PersonId);varlinq=tableClass.Items.Where(x=>x.UserId==emp.UserId&&x.Date>DateBefo

c# - 如何将动态 'where' 子句添加到 linq 查询?

我有一个带有位掩码的用户表,其中包含用户的角色。下面的linq查询返回角色包括1、4或16的所有用户。varusers=fromuindc.Userswhere((u.UserRolesBitmask&1)==1)||((u.UserRolesBitmask&4)==4)||((u.UserRolesBitmask&16)==16)selectu;我想将其重写为下面的方法,以返回给定角色的所有用户,以便我可以重用它:privateListGetUsersFromRoles(uint[]UserRoles){}关于如何动态构建查询的任何指示?谢谢 最佳答案

c# - 在 Entity Framework 中动态添加 where 子句

我有这条sql语句SELECTuserIDfromusersWHERE(name='name1'ANDusername='username1')OR(name='name2'ANDusername='username2')OR(name='name3'ANDusername='username3')OR..........(name='nameN'ANDusername='usernameN')如何使用LINQ通过EntityFramework实现此语句? 最佳答案 您可以使用一个名为PredicateBuilder的美丽事物.像这

c# - LINQ Where 忽略重音和大小写

通过忽略重音和大小写的Where方法使用LINQ过滤元素的最简单方法是什么?到目前为止,我已经能够通过对属性调用方法来忽略大小写,我认为这不是一个好主意,因为它为每个元素调用相同的方法(对吧?)。到目前为止,这是我得到的:varresult=frompinPeoplewherep.Name.ToUpper().Contains(filter.ToUpper())selectp;请告诉我这是否是一个好的做法,以及忽略重音的最简单方法。 最佳答案 要忽略大小写和重音符号(变音符号),您可以先定义一个扩展方法,如下所示:publicsta

c# - WHERE IN(ID 数组)

我有一个网络服务,它传递了一个整数数组。我想按如下方式执行select语句,但不断出现错误。我需要将数组更改为字符串吗?[WebMethod]publicMiniEvent[]getAdminEvents(intbuildingID,DateTimestartDate){command.CommandText=@"SELECTid,startDateTime,endDateTimeFromtb_bookingsWHEREbuildingIDIN(@buildingIDs)ANDstartDateTime 最佳答案 你不能(很遗憾)那