草庐IT

LINQ_ENABLED

全部标签

c# - Lists.ForEach 使用 LINQ/LAMBDA 按标准选择

我有List,我;只想使用LinQ/LAMBDA根据某些标准进行选择我的代码是Lists.ForEach(x=>x.IsAnimal==false{/*DoSomething*/});在这部分x.IsAnimal==false我知道我们可以使用for循环轻松实现这一点,但我想通过使用LinQ/LAMBDA了解更多信息 最佳答案 在使用ForEach之前只需使用Where和ToListLists.Where(x=>!x.IsAnimal).ToList().ForEach(...) 关于c

c# - LINQ:何时使用编译查询?

我想得到一些专家的建议。我以前使用过编译查询,但对于这种特殊情况,我不确定它是否合适。这是一种搜索表单,其中的查询会根据搜索内容而变化。staticFunc>Search=CompiledQuery.Compile((DBContextdb,intID)=>db.Person.Where(w=>w.LocationID=ID).Select(s=>newFoo{Name=s.PersonName,Age=s.Age,Location=s.LocationName,Kin=s.Kin}));现在如果有人填写搜索框,我想通过向查询添加另一个Where语句来扩展查询:varquery=Sea

c# - 强制linq执行内连接

我试图强制Linq在两个表之间执行内部连接。我举个例子。CREATETABLE[dbo].[People]([PersonId][int]NOTNULL,[Name][nvarchar](MAX)NOTNULL,[UpdatedDate][smalldatetime]NOTNULL...Otherfields...)CREATETABLE[dbo].[CompanyPositions]([CompanyPositionId][int]NOTNULL,[CompanyId][int]NOTNULL,[PersonId][int]NOTNULL,...Otherfields...)现在我正

c# - 动态 linq 和运算符重载

考虑下面的代码:varvectorTest=newVector2(1,2)+newVector2(3,4);//Worksvarx=Expression.Parameter(typeof(Vector2),"x");vartest=System.Linq.Dynamic.DynamicExpression.ParseLambda(new[]{x},null,"x=x+x");运行它,我得到以下异常:System.Linq.Dynamic.ParseExceptionwasunhandledbyusercodeMessage=Operator'+'incompatiblewithoper

c# - 为什么下面的 linq to sql 查询会生成一个子查询?

我做了以下查询:varlist=frombookinbookswherebook.price>50selectbook;list=list.Take(50);我希望上面的代码生成如下内容:SELECTtop50id,title,price,authorFROMBooksWHEREprice>50但它会生成:SELECT[Limit1].[C1]as[C1][Limit1].[id]as[Id],[Limit1].[title]as[title],[Limit1].[price]as[price],[Limit1].[author]FROM(SELECTTOP(50)[Extent1].

c# - 如何使用 LINQ to SQL/ADO.NET 获取执行计划

是否可以通过编程方式获取LINQtoSQL或ADO.NET查询的执行计划以显示在调试信息中?如果是,怎么办? 最佳答案 当然,您需要两样东西。DbConnection、DbCommand和DbDataReader的自定义实现。您可以使用它来拦截所有发送到数据库的SQL。您基本上设置了它,所以您有一个记录所有运行的SQL的层。(我们计划在未来几个月内开源这方面的东西,敬请期待)一种显示数据意义的方法,恰好在这里是开源的:https://data.stackexchange.com/stackoverflow/s/345/how-uns

c# - 字符串 EndsWith 方法中 Entity Framework Linq 中的奇怪行为

背景我有一个只包含一列的表:名称。里面只有四行,比方说|Name||test1.com||test2.com||test3.com||test4.com|问题如果我查询varemail="a@test2.com";Table.Where(x=>email.EndsWith(x.Name));我会得到一个空列表。但是如果我先查询所有行并像这样计算内存中的位置varemail="a@test2.com";Table.ToList().Where(x=>email.EndsWith(x.Name));我会得到一个仅包含正确的test2.com的列表。第一次查询生成的SQL是SELECT"Ex

c# - 当 dbContext 带有 'using' block 时,如何从 Linq 返回 IQueryable 到 SQL 查询?

我一直在使用“使用”block进行编码,但我想知道我是否可以从以下返回一个IQueryable而无需在我访问它之前处理该对象。publicIQueryableGetContacts(stringclientID){using(dbDataContextdb=newdbDataContext()){varcontacts=from_contactsindb.Contactswhere_contacts.ClientID==clientIDorderby_contacts.LastNameascendingselect_contacts;returncontacts;}}我是简单地删除“u

c# - LINQ To 对象 GroupBy 方法

LINQToObjectsGroupBy方法如何工作?它会为每个键查看整个集合吗?有什么方法可以告诉GroupBy方法集合已排序吗? 最佳答案 GroupBy,如果处理得当,将只在一次前向传递中起作用。基本实现(不是他们的)将可比到:vardata=newDictionary>(comparer);foreach(variteminsource){varkey=keySelector(item);Listlist;if(!data.TryGetValue(key,outlist)){data.Add(key,list=newList

c# - 在单个元素级别应用 Linq Func<T, TResult> 键选择器

对不起,如果标题有误导性,不知道如何描述这个。我的最终目标是拥有一个IQueryable的扩展方法以及某种形式(例如见下文)的表达式,它允许我返回一个IQueryable>(或类似),其中包含原始T在Entity字段,以及包含由某种形式的表达式描述的元素的数组/可枚举。我知道这没有什么意义,希望在举个例子之后它会...这是我到目前为止:classEntityIndex{TEntity{get;set;}//Doesn'thavetobeIEnumerable,whateveriseasierIEnuermableIndex{get;set;}}staticclassElsewhere{