小编Jim*_*ley的帖子

实体框架 - 具有order by和group by的Linq查询

我有Measurement对象具有相关属性CreationTime(DateTime)和Reference(字符串)以及一些其他值.

我想一个高效的LINQ查询写入DbContext

  • Measurement按给定的方式分组我的对象Reference
  • 通过组CreationTime中第一个属性MeasurementCreationTime属性的平均值对组进行排序
  • 将查询限制为最新 numOfEntries

(在后面的步骤中,我计算这些返回组的平均值,但我想这与我的问题无关.)

DbContext本身有一个DbSet<Measurement>调用Measurements保存所有Measurement对象.

我提出了以下查询,这会产生一个正确排序但缺少某些组的组列表.

var groupByReference = (from m in context.Measurements
                          orderby m.CreationTime
                          group m by new { m.Reference } into g
                          select g).Take(numOfEntries).ToList();
Run Code Online (Sandbox Code Playgroud)

如何Measurement正确选择"最近的"组?

我正在使用Entity Framework 4.4和MySQL数据库(MySql Connector/Net 6.6.4).这个例子是简化的,我可以进一步详细说明和/或在必要时给出一个例子.

谢谢!

c# mysql linq entity-framework

12
推荐指数
2
解决办法
10万
查看次数

在O365中删除空文档库

我有一个现有的系统,我们正在清理数千个文档库,并将内容移动到Azure中.我正在寻找一种编程方式迭代列表以找到空的并删除它们.有没有人有任何样本(最好使用CSOM或powershell)来实现他们愿意分享的样本?

此时,我已经提出以下代码来完成任务,但是我收到错误"底层连接已关闭:接收时发生意外错误"试图加载列表因为超时因为我有这么多名单.到目前为止,我的解决方案隐藏了uid,pws,site的用户秘密.

var cred = new SharePointOnlineCredentials(uid, pws);
var context = new ClientContext(site);
context.Credentials = cred;
context.RequestTimeout = Timeout.Infinite;

var lists = context.Web.Lists;
context.Load(lists);
context.ExecuteQuery();
foreach(var list in lists)
{
    list.DeleteObject();
    list.Update();
}
Run Code Online (Sandbox Code Playgroud)

sharepoint-online

11
推荐指数
1
解决办法
243
查看次数

使用LINQ to XML生成xml

假设我有一个如下所示的类,如何使用LINQ to XML创建如下所示的xml?

public class Order
{
  public string OrderNo {get; set;}
  public string ItemId {get; set;}
  public string ItemDesc {get; set;}
  public int Qty {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
<orders>
  <orderid>
     <orderno>1</orderno>
     <itemid>W001</itemid>
     <itemdesc>C# T-Shirst</itemdesc>
     <quantity>2</quantity>
  </orderid> 
  <orderid>
     <orderno>2</orderno>
     <itemid>W002</itemid>
     <itemdesc>XML T-Shirt</itemdesc>
     <quantity>1</quantity>
  </orderid>
</orders>
Run Code Online (Sandbox Code Playgroud)

c# xml linq

7
推荐指数
2
解决办法
8497
查看次数

Windows Mobile 6.5访问模拟器外部的文件

我正在使用一个Windows Mobile 6.5应用程序,该应用程序使用我想要从模拟器复制回主机的SQL压缩数据库.如何直接从主机访问模拟器文件?

windows-mobile

5
推荐指数
1
解决办法
5159
查看次数

LINQ vs sql - 带回太多行

我正在尝试转换此查询

select top(10) *
from SOMETABLE
where Name = 'test'
Run Code Online (Sandbox Code Playgroud)

进入linq所以我认为它应该是这样的

  var c =
  (from l
  in db.SOMETABLE
  where l.Name= 'test'
  select l).take(10);
Run Code Online (Sandbox Code Playgroud)

但是当我查看服务器分析器时,我可以看到linq从表中获取所有数据,并且可能应用WHERE和TAKE从数据库汇集数据.

问题是SOMETABLE有大约10 000 000条记录,并且不能快速运行.

我做错了吗?

c# linq asp.net-mvc entity-framework

1
推荐指数
1
解决办法
325
查看次数

通过Linq从数据库中删除很慢

我在c#中删除了一个应用程序,我利用linq to entities它在我的应用程序中构建查询.但是我发现我的应用程序在添加和删除记录时非常慢.删除500条记录大约需要15分钟.那太久了.我的删除查询如下.

public void deletePayrollBatch(int batchNo) 
{
          var context = new DataSources.sspEntities();
          var query1 = (from a in context.Payroll_Details
                        where a.Payroll_BatchBatch_no == batchNo
                        select a).ToList();

           foreach (var x in query1) 
           {
                context.DeleteObject(x);
                context.SaveChanges();
           }
}
Run Code Online (Sandbox Code Playgroud)

我的查询相当简单.一行数据确实包含大约20列.我不知道这是否会产生影响.无论如何,如果我能得到一些专家建议,那将会有所帮助.谢谢.

编辑.

基于删除,我已经有了很好的建议.其中之一是context.SaveChanges()在循环之外使用.在我的插入中,我有类似的代码(如下所示),但我需要首先保存记录,因为我希望ID在另一个函数中使用它.在这种情况下,我该怎么办?

foreach (var xyz in x)
{
   Try{
          pDetails1.EstateID = 143;
          pDetails1.Employee_Personal_InfoEmp_id = xyz.PD_EmpPersonal_Id;
          pDetails1.PAYE = (decimal)xyz.PD_PAYE.GetValueOrDefault();
          pDetails1.PAYE_YTD = (decimal)PayeYTD.GetValueOrDefault();
          pDetails1.Basic_Pay = (decimal)xyz.PD_BasicPay.GetValueOrDefault();
          pDetails1.Basic_Pay_YTD = (decimal)basicpay_YTD.GetValueOrDefault();
          pDetails1.Gross_Pay = (decimal)xyz.PD_GrossPay.GetValueOrDefault();
          pDetails1.Gross_Pay_YTD = (decimal)GrossPay_YTD.GetValueOrDefault();

          context.SaveChanges();
          Functions.RandomFunct rf = new RandomFunct(); …
Run Code Online (Sandbox Code Playgroud)

c# linq database linq-to-entities

0
推荐指数
1
解决办法
382
查看次数