Tag: linq

如何使用LINQ to Entities获取字节数组长度?

我有一个Document类,它将该文档的数据存储为字节数组。 我需要使用LINQ to Entities来检查数组的大小。 我尝试过以下方法: [long Linq query here…] o.Data.Length < 800000) 问题是我得到以下exception: LINQ to Entities中不支持LINQ表达式节点类型’ArrayLength’。“ 有没有其他方法来检查字节数组的大小?

linq给实体生成了sql

我在ado.netentity framework中的实体中遇到了一些问题。 基本上我正在做的是这样的: var results = (from c in companies where c.Name.StartsWith(letter) select c); 并将其转换为SQL,如: WHERE (CAST(CHARINDEX(@p, [Extent1].[Name]) AS int)) = 1 这很好,但我的表有数百万的记录,所以这运行非常慢。 我需要它生成的是: WHERE Name LIKE @p + ‘%’ 我搜索高低,除了使用存储过程或使用实体sql之外,找不到任何解决方案… 有没有办法通过linq做到这一点? 可能通过某种方式将linq扩展到实体linq提供程序,或以某种方式拦截命令树或生成的查询?

数据到多维数组

有没有一种简单的方法将Datatable转换为多维字符串数组? 也许使用LINQ ? 除了手动循环遍历所有列/行之外,还有一种更好的方法…

如何使用匿名LINQ结果填充DataTable

我有以下LINQ查询: var timesheets = from timesheet in entities.Timesheets join timesheetTask in entities.Timesheet_Task on timesheet.Id equals timesheetTask.Timesheet_Id join task in entities.Tasks on timesheetTask.Task_Id equals task.Id join project in entities.Projects on task.Project_Id equals project.Id join department in entities.Departments on project.Department_Id equals department.Id where timesheet.Employee_Id == employeeId select new { date = timesheet.Date, taskName = task.Name, projectName = […]

检测具有相同子项的实体

我有两个实体, Class和Student ,以多对多关系链接。 从外部应用程序导入数据时,遗憾的是一些类是一式两份创建的。 “重复”类具有不同的名称,但是相同的主题和相同的学生。 例如: {Id = 341,Title =’10rs / PE1a’,SubjectId = 60,Students = {Jack,Bill,Sarah}} {Id = 429,Title =’10rs / PE1b’,SubjectId = 60,Students = {Jack,Bill,Sarah}} 匹配这些重复类的名称没有一般规则,因此识别这两个类是重复的唯一方法是它们具有相同的SubjectId和Students 。 我想使用LINQ来检测所有重复项(并最终合并它们)。 到目前为止,我尝试过: var sb = new StringBuilder(); using (var ctx = new Ctx()) { ctx.CommandTimeout = 10000; // Because the next line takes so long! var allClasses […]

选择子元素具有值的XElement

给出以下XML: 1 2.99 如何根据值为“1”的子元素“id”选择“platform”元素作为XElement对象? 我到目前为止: XDocument xPlatformXml = new XDocument(); XElement xel = xPlatformXml.Element(“platforms”).Elements(“platform”).Where(x => x.Value == “1”).SingleOrDefault(); 但这是寻找“平台”元素而不是“id”的价值。

C#linq包括before-after之后

在linq之间有区别: EFDbContext _db = new EFDbContext(); 1)_db.UserQuizes .Where(uq => uq.UserId == currentUserId && uq.QuizId == quizId) .Include(qz => qz.Quiz.VerbalQuizes.Select(q => q.Question)).First() 2)_db.UserQuizes .Include(qz => qz.Quiz.VerbalQuizes.Select(q => q.Question)) .Where(uq => uq.UserId == currentUserId && uq.QuizId == quizId).First() 3)_db.UserQuizes .Include(qz => qz.Quiz.VerbalQuizes.Select(q => q.Question)) First(uq => uq.UserId == currentUserId && uq.QuizId == quizId) 请注意,第一个查询使用包括在where之前和之后的where,但结果是相同的。 另外如何查看实际的sql查询? 在这个特殊情况下,性能是我的主要目标,我可以改进查询吗? 我需要更改两个属性:UserQuizes属性和UserQuizes-> […]

通过检查元素的条件将列表拆分为子列表

假设我有一个integeres数组,我想把它分成几个部分,我想用零作为何时破坏的条件。 像这样的东西: [1,2,3,0,4,5,0,6,7] => [[1,2,3,0], [4,5,0], [6,7]] 好吧,可以使用两个for循环轻松完成,但我想知道是否可以使用LINQ执行此操作。 有这样的问题[1] , [2] ,但与此相反,它们依赖于从列表外部提供的条件。 注意:我知道在一个post中提出多个问题是不礼貌的,但是如果有人熟悉函数式编程(因为在本质上,它确实是一个FP问题),我也希望看到他们的观点和这个问题的可能解决方案。

按多个字段对集合进行排序

我需要对一个集合进行排序。 例如,我有 Austin 12/3/2012 Sam 100 12/3/2012 Sam 200 14/3/2012 Bubly 300 12/3/2012 Bubly 300 15/3/2012 ram 100 13/3/2012 现在如果排序顺序是Name,则datetime然后输出 Austin 12/3/2012 Bubly 12/3/2012 Bubly 15/3/2012 ram 13/3/2012 sam 12/3/2012 sam 14/3/2012 如果他排序顺序是Datetime,那么它应该是 12/3/2012 austin 12/3/2012 bubly 12/3/2012 sam 13/3/2012 ram 14/3/2012 sam 15/3/2012 bubly 因此对于其他项目。 我该怎么做呢 ? 如何使用列的顺序进行排序。

将List 转换为EntityFramework列/字段列表

使用EntityFramework,我可以使用以下语法获取特定类型的实体列表: List customers = ((IQueryable)myEntities.Customers .Where(c => c.Surname == strSurname) .OrderBy(c => c.Surname)).ToList(); 然后,我可以做这样的事情,最终得到我感兴趣的数据: var customerSummaries = from s in customers select new { s.Surname, s.FirstName, s.Address.Postcode }; 我给出了包含所请求的汇总数据的字段(和必要的表)的string s(基于用户选择)的列表。 例如,对于上面的’customerSummary’,提供的string列表将是:“Surname”,“FirstName”,“Address.Postcode”。 我的问题是:如何将该字符串列表转换为仅提取指定字段所需的语法? 如果无法做到这一点,那么列的列表将是一个更好的类型(比字符串),这样我就可以提取正确的信息? 我想我需要知道EF [entity | table]的[member | column | field]的类型,如果这是有道理的。 编辑: 我尝试了建议的答案 – 动态linq – 使用以下语法 string parmList = “Surname, Firstname, Address.Postcode”; var customers […]