草庐IT

Linq2XSD

全部标签

c# - PLINQ 的性能比通常的 LINQ 差

令人惊讶的是,使用PLINQ并没有在我创建的一个小测试用例上产生好处;事实上,它比通常的LINQ还要糟糕。测试代码如下:intrepeatedCount=10000000;privatevoidbutton1_Click(objectsender,EventArgse){varcurrTime=DateTime.Now;varstrList=Enumerable.Repeat(10,repeatedCount);varresult=strList.AsParallel().Sum();varcurrTime2=DateTime.Now;textBox1.Text=(currTime2.

c# - 用 LINQ 替换嵌套的 foreach;修改和更新内部深处的属性

考虑更改5或6层深对象的一个​​或多个属性的数据成员的要求。有一些子集合需要迭代才能到达需要检查和修改的属性。在这里,我们调用了一个方法来清除员工的街道地址。由于我们在循环中更改数据,当前的实现需要一个for循环来防止异常:Cannotassignto"someVariable"becauseitisa'foreachiterationvariable'这是带有嵌套foreach和for的当前算法(混淆)。foreach(varempincompany.internalData.Emps){foreach(varaddrinemp.privateData.Addresses){intn

c# - 如何使用 Linq 处理带有 FirstOrDefault 的 NULL 对象属性

我真正的应用程序问题如下所示Employeeempl=newEmployee(397947,"David","Redson",80000);employees.Add(empl);employees.Add(newEmployee(174966,"Alfred","Swanson",50000));employees.Add(newEmployee(848024,"Alima","Bieyrou",40000));employees.Add(newEmployee(number:397462,fName:"Robert",lName:"Nants",salary:30000));str

c# - 使用 LINQ 生成排列

我有一组必须安排的产品。有P个产品,每个产品的索引从1到P。每个产品都可以安排到0到T的时间段。我需要构建满足以下约束的产品计划的所有排列:Ifp1.Index>p2.Indexthenp1.Schedule>=p2.Schedule.我正在努力构建迭代器。我知道当产品数量是已知常量时如何通过LINQ执行此操作,但我不确定当产品数量是输入参数时如何生成此查询。理想情况下,我想使用yield语法来构造此迭代器。publicclassPotentialSchedule(){publicPotentialSchedule(int[]schedulePermutation){_schedule

c# - Linq + NHibernate:准备生产了吗?

Thisquestionalreadyhasanswershere:LinqtoNHibernate:isitmature?(4个答案)4年前关闭。Linq+NHibernate生产准备就绪了吗?我听到很多人在生产代码中使用它,但是它仍然是正式的“Alpha”。但是已经有很长时间了,那么您的经验是什么?[编辑]这个问题不能重复引用的问题,因为这个问题大约一年大了?[/编辑] 最佳答案 我们在这里使用它,但在存储库接口(interface)后面使用它,因此,如果在某些情况下LINQtoNHibernate不太合适,我们可以在适当的时候

c# - 为 LINQ 上下文禁用所有延迟加载或强制预加载

我有一个文档生成器,目前包含对大约200个项目的查询,但完成后可能会超过500个。我最近注意到一些映射表示延迟加载。这给文档生成器带来了问题,因为它需要根据生成的文档访问所有这些属性。虽然我知道可以为上下文指定的DataLoadOptions,但这将导致我必须明确指定可能加载的每一列。这是1000以北,因为所有数据获取都发生在一个上下文中。有什么方法可以禁用上下文的延迟加载或显式启用预加载以忽略延迟加载属性?也许扩展数据库上下文类并覆盖某些东西? 最佳答案 您需要设置DeferredLoadingEnabled,然后使用一些反射来包

c# - 不执行 linq 导致内存分配 C#

在使用VisualStudio2013性能向导分析我的代码的.NET内存分配时,我注意到某个函数分配了大量字节(因为它是在大循环中调用的)。但是查看分析报告中突出显示的函数,我根本不明白为什么它要分配任何内存。为了更好地理解发生了什么,我隔离了导致分配的代码。这类似于下面的LinqAllocationTester类。一旦我注释掉该函数中的LINQ代码,该函数从未在测试代码路径中执行过,就不再分配内存。NonLinqAllocationTester类模仿这种行为。用普通循环替换LINQ代码也可以避免内存分配。如果我在下面的测试代码上运行.NET内存分配测试,它会显示LinqAllocat

c# - 如何强制 LINQ to SQL 评估数据库中的整个查询?

我有一个完全可翻译成SQL的查询。由于未知原因,LINQ决定最后一个Select()在.NET中执行(而不是在数据库中),这导致对数据库运行大量额外的SQL查询(每个项目)。实际上,我发现了一种“奇怪”的方法来强制将完整翻译成SQL:我有一个查询(这是一个非常简化的版本,仍然没有按预期工作):MainCategories.Select(e=>new{PlacementId=e.CatalogPlacementId,Translation=Translations.Select(t=>new{Name=t.Name,//...}).FirstOrDefault()})它会产生大量的SQL

c# - Linq to SQL 计数分组元素生成超时

我有一个看起来像这样的表:FruitID|FruitType23|2215|2256|1643|3我想通过FruitType获得一个名为TheFruitIDs的FruitIDs列表。这是我的:varTheCounter=(fromfinMyDC.FruitswhereTheFruitIDs.Contains(f.FruitID)groupfby0intoTheFruitsselectnewMyCounterMode(){CountType1=(int?)TheFruits.Where(f=>f.FruitType==1).Count()??0,CountType2=(int?)TheF

c# - 为什么 linq-2-sql 会创建额外的不必要的对象?

我在数据库中有一个简单的父子表CREATETABLE[Parent]([Id][int]IDENTITY(1,1)NOTNULL,[Name][nvarchar](256)NOTNULL)ALTERTABLE[Parent]ADDCONSTRAINT[PK_Parent_Id]PRIMARYKEY([Id])CREATETABLE[Child]([Id][int]IDENTITY(1,1)NOTNULL,[ParentId][int]NOTNULL,[Name][nvarchar](256)NOTNULL)ALTERTABLE[Child]ADDCONSTRAINT[PK_Child_