草庐IT

LINQ_ENABLED

全部标签

c# - 如何将 SQL 中的多个内部联接转换为 LINQ?

我已经掌握了LINQ-to-SQL的基础知识,但我一直在努力让JOIN正常工作。我想知道如何将以下内容转换为LINQ-to-SQL(最好使用方法链接,因为这是我的首选格式)。SELECTc.CompanyId,c.CompanyName,p.FirstName+''+p.LastNameasAccountCoordinator,p2.FirstName+''+p2.LastNameasAccountManagerFROMdbo.CompaniescINNERJOINdbo.PersonspONc.AccountCoordinatorPersonId=p.PersonIdINNERJOI

c# - Linq distinct - 计数

我希望对示例对象列表执行查询DateUsername01/01/2011james01/01/2011jamie01/01/2011alex01/01/2011james02/01/2011matt02/01/2011jamie02/01/2011alex02/01/2011james02/01/2011james02/01/2011lucy02/01/2011alex03/01/2011james03/01/2011bob03/01/2011bob03/01/2011james03/01/2011james04/01/2011alex04/01/2011alex04/01/2011a

c# - Linq distinct - 计数

我希望对示例对象列表执行查询DateUsername01/01/2011james01/01/2011jamie01/01/2011alex01/01/2011james02/01/2011matt02/01/2011jamie02/01/2011alex02/01/2011james02/01/2011james02/01/2011lucy02/01/2011alex03/01/2011james03/01/2011bob03/01/2011bob03/01/2011james03/01/2011james04/01/2011alex04/01/2011alex04/01/2011a

c# - Linq OrderByDescending,首先为空

我的数据库中有一个包含DateTime?的字段。我想对结果进行排序,以便NULL显示在顶部,然后按DateTime降序排列,例如,nullnull2012-04-012012-01-012011-09-04原因是我正在查看到期日期,尽管有些条目不会过期。 最佳答案 您可以返回DateTime.MaxValue而不是排序表达式中的null,因此首先对具有null日期的行进行排序:yourData.OrderByDescending(row=>row.dateTimeField??DateTime.MaxValue);

c# - Linq OrderByDescending,首先为空

我的数据库中有一个包含DateTime?的字段。我想对结果进行排序,以便NULL显示在顶部,然后按DateTime降序排列,例如,nullnull2012-04-012012-01-012011-09-04原因是我正在查看到期日期,尽管有些条目不会过期。 最佳答案 您可以返回DateTime.MaxValue而不是排序表达式中的null,因此首先对具有null日期的行进行排序:yourData.OrderByDescending(row=>row.dateTimeField??DateTime.MaxValue);

c# - LINQ,无法创建 XXX 类型的常量值。在此上下文中仅支持原始类型或枚举类型

在我的应用程序中,我有讲师,他们有他们可以教授的类(class)列表,当我删除一门类(class)时,我想删除与讲师的连接。这是代码:publicvoidRemoveCourse(intcourseId){using(vardb=newAcademicTimetableDbContext()){varcourseFromDb=db.Courses.Find(courseId);vartoRemove=db.Lecturers.Where(l=>l.Courses.Contains(courseFromDb)).ToList();foreach(varlecturerintoRemove

c# - LINQ,无法创建 XXX 类型的常量值。在此上下文中仅支持原始类型或枚举类型

在我的应用程序中,我有讲师,他们有他们可以教授的类(class)列表,当我删除一门类(class)时,我想删除与讲师的连接。这是代码:publicvoidRemoveCourse(intcourseId){using(vardb=newAcademicTimetableDbContext()){varcourseFromDb=db.Courses.Find(courseId);vartoRemove=db.Lecturers.Where(l=>l.Courses.Contains(courseFromDb)).ToList();foreach(varlecturerintoRemove

c# - 将 SQL 转换为 Linq left join with null

我如何正确地将此SQL转换为linqselectt1.ProgramIDfromProgramt1LEFTJOINProgramLocationt2ONt1.ProgramID=t2.ProgramIDwheret2.ProgramIDISNULL我试过了,但是不行varprogy=(fromuindb.ProgramLocationsjoinbindb.Programsonu.ProgramIDequalsb.ProgramIDintoyGfromy1inyG.DefaultIfEmpty()whereu.ProgramID==nullwhereu.ProgramID==nullse

c# - 将 SQL 转换为 Linq left join with null

我如何正确地将此SQL转换为linqselectt1.ProgramIDfromProgramt1LEFTJOINProgramLocationt2ONt1.ProgramID=t2.ProgramIDwheret2.ProgramIDISNULL我试过了,但是不行varprogy=(fromuindb.ProgramLocationsjoinbindb.Programsonu.ProgramIDequalsb.ProgramIDintoyGfromy1inyG.DefaultIfEmpty()whereu.ProgramID==nullwhereu.ProgramID==nullse

c# - 在一个 LINQ 查询中获取两列的总和

假设我有一张名为项目(IDint、Doneint、Totalint)我可以通过两个查询来完成:inttotal=m.Items.Sum(p=>p.Total)intdone=m.Items.Sum(p=>p.Done)但我想在一个查询中完成,像这样:varx=frompinm.Itemsselectnew{Sum(p.Total),Sum(p.Done)};当然有一种方法可以从LINQ语法调用聚合函数...? 最佳答案 这样就可以了:LINQ查询语法:frompinm.Itemsgrouppby1intogselectnew{Sum