草庐IT

Linq-to-Objects

全部标签

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# - Entity Framework 核心代码优先 : Cascade delete on a many-to-many relationship

我正在使用Entity-FrameworkCore(版本"EntityFramework.Core":"7.0.0-rc1-final")开发一个ASP.NETMVC6项目,该项目由SQLServer2012ExpressDB支持。我需要为Person之间的多对多关系建模实体和Address实体。根据this指南我用PersonAddress建模了它连接表实体,因为这样我可以存储一些额外的信息。我的目标是以这种方式设置我的系统:如果Person实例被删除,所有相关PersonAddress必须删除实例。所有Address他们引用的实例也必须删除,前提是它们与其他实例无关PersonAd

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# - 重现 "A connection that was expected to be kept alive was closed by the server."

我们在winforms应用程序中使用WebClient、.NET3.5sp1。对于一些用户来说,这个结果在消息异常中:“基础连接已关闭:服务器关闭了预期保持事件状态的连接。”在网络上搜索了一下,建议“修复”以禁用httpkeepalive,我们对此并不真正感兴趣,有人认为它可能是.NET库中的错误,等等。错误消息表明它是一个keepaliv'edhttp连接,它以某种方式被服务器(或代理)关闭,而WebClient的底层未正确检测到它。我们正在考虑捕获这个特定案例,然后再次尝试该请求。但是我们无法重现此异常。所以。我们如何才能正确捕获产生上述错误消息的情况。catch(WebExcep

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{