我有Measurement
对象具有相关属性CreationTime
(DateTime)和Reference
(字符串)以及一些其他值.
我想一个高效的LINQ查询写入DbContext
该
Measurement
按给定的方式分组我的对象Reference
CreationTime
中第一个属性Measurement
或CreationTime
属性的平均值对组进行排序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).这个例子是简化的,我可以进一步详细说明和/或在必要时给出一个例子.
谢谢!
我有一个现有的系统,我们正在清理数千个文档库,并将内容移动到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) 假设我有一个如下所示的类,如何使用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) 我正在使用一个Windows Mobile 6.5应用程序,该应用程序使用我想要从模拟器复制回主机的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 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)