草庐IT

c# - Entity Framework /Linq to SQL : Skip & Take

只是好奇Skip&Take应该如何工作。我得到了我想在客户端看到的结果,但是当我连接AnjLabSQLProfiler并查看正在执行的SQL时,它看起来好像正在查询并将整组行返回到客户。它真的会返回所有行,然后在客户端使用LINQ进行排序和缩小范围吗?我尝试过使用EntityFramework和LinqtoSQL来实现;两者似乎具有相同的行为。不确定它有什么不同,但我在VWD2010中使用C#。有什么见解吗?publicIEnumerableListStores(Funcsort,booldesc,intpage,intpageSize,outinttotalRecords){varc

c# - LINQ 中的 `from..where` 或 `FirstOrDefault`

传统上,当我尝试从数据库中获取用户数据时,我使用了以下方法(在某种程度上):DbUserscurUser=context.DbUsers.FirstOrDefault(x=>x.u_LoginName==id);stringname=curUser.u_Name;stringemail=curUser.u_Email;你可以看到我想要做的就是获取姓名和电子邮件,但在我看来,这个LINQ查询正在获取存储在该用户数据库中的一切,并将其取回,然后让我得到我想要的。我一直在做一些研究并找到了以下替代方案:varcurrent=fromsincontext.DbUserswheres.u_Log

c# - 使用linq无需select直接更新

大家好。我仍在学习LINQ,所以请原谅我这是否天真。当您直接处理SQL时,您可以生成带条件的更新命令,而无需运行select语句。当我使用linq时,我似乎遵循以下模式:选择实体修改实体提交更改我想做的是使用linq和延迟执行的直接更新。实际执行是否可能直接在SQL上发生,而无需将任何数据传输到客户端?DataContextdc=newDataContextvarq=fromproductindc.Productswhereproduct.Type=1setproduct.Count=0dc.SubmitChanges所以本质上,LINQ拥有它需要的所有信息,而无需使用选择来生成更新命

c# - 如何创建 LINQ 表达式树以选择匿名类型

我想使用表达式树动态生成以下选择语句:varv=fromcinCountrieswherec.City=="London"selectnew{c.Name,c.Population};我已经弄清楚了如何生成varv=fromcinCountrieswherec.City=="London"selectnew{c.Name};但我似乎找不到可以让我在选择的lambda中指定多个属性的构造函数/重载。 最佳答案 如前所述,这可以借助ReflectionEmit和我在下面包含的辅助类来完成。下面的代码是一项正在进行的工作,所以请按它的值(

c# - 对 ConcurrentDictionary 值的 linq 查询是否线程安全?

假设我有以下代码:ConcurrentDictionarymyDict=newConcurrentDictionary();通常每个按键访问都是线程安全的,但下面的linq查询也是线程安全的吗?我没有在文档中找到任何内容:http://msdn.microsoft.com/en-us/library/dd287226.aspxifmyDict.Values.Any(x=>!x.HasPaid)){returnfalse} 最佳答案 更正...我不确定您何时访问Values属性。在对象本身上使用LINQ时它是线程安全的。LINQ将使用

c# - Linq-to-SQL 超时

我在我的一个页面上收到错误消息,提示linq查询已超时,因为它花费的时间太长。它使页面无法使用。这是一个报告页面,管理员每天只能访问一次。缩减这个查询是不可避免的,它只需要对大量数据进行排序。我读过的解决这个问题的方法是增加数据上下文中的超时属性,但我想避免这样做,因为它会改变整个网站。有什么方法可以为单个页面设置更长的超时时间吗? 最佳答案 刚找到使用智能感知的答案:using(MainContextdb=newMainContext()){db.CommandTimeout=3*60;//3Mins}这就是您可以在每个查询的基础

c# - LINQ 加入多个 From 子句

在C#中编写LINQ查询时,我知道我可以使用join关键字执行连接。但是以下是做什么的?fromcinCompaniesfromeinc.Employeesselecte;一本LINQ书我说它是一种连接,但不是正确的连接(它使用join关键字)。那么它到底是什么类型的连接呢? 最佳答案 多个“from”语句被认为是复合linq语句。它们就像嵌套的foreach语句。msdn页面确实列出了一个很好的例子herevarscoreQuery=fromstudentinstudentsfromscoreinstudent.Scoreswhe

c# - 如何从使用 LINQ to SQL 的 c# 方法返回匿名类型

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicate:LINQtoSQL:Returnanonymoustype?我有一个标准的LINQtoSQL查询,它以匿名类型返回数据(包含大约6列各种数据类型的数据)。我想让这个返回的对象对程序的其他部分可用,方法是将它返回给方法调用者,或者将它分配给包含该方法的对象的属性。鉴于它是匿名类型(“var”),我该如何做到这一点?编辑-这是代码:using(ormDataContextcontext=newormDataContext(connStr)){varelectionInfo=fromt1incontext.elec

c# - LINQ:如何跳过一个然后获取序列的其余部分

我想遍历List的项目,除了第一个,保留顺序。有没有一种优雅的方法可以使用LINQ使用如下语句来做到这一点:foreach(variteminlist.Skip(1).TakeTheRest()){....我玩弄了TakeWhile,但没有成功。可能还有另一种简单的方法? 最佳答案 来自Skip的文档:Bypassesaspecifiednumberofelementsinasequenceandthenreturnstheremainingelements.所以你只需要这个:foreach(variteminlist.Skip(1

c# - linq 案例陈述

我需要一些有关linq(c#)中CASE语句的帮助:osc_products.products_quantity=CASEWHENitempromoflag'N'THEN100000WHENitemcat1IN('1','2','31')ANDitemsalestatus='S'THEN100000WHENitemsalestatus='O'THEN0ELSEcds_oeinvitem.itemqtyonhand-cds_oeinvitem.itemqtycommittedEND我开始转换为linq,(我还在学习):cdsDBDataContextdb=newcdsDBDataCont