C# sql查询到linq查询的In子句
如果有人能帮助我用Linq编写以下查询,我将不胜感激C# sql查询到linq查询的In子句,c#,linq,C#,Linq,如果有人能帮助我用Linq编写以下查询,我将不胜感激 select totaldue from Receivables where studentid = 8128 and reportedon = (select max(reportedon) from Receivables where studentid = 8128 这与您的要求类似 var receivables = new List<Rece
select totaldue
from Receivables
where studentid = 8128
and reportedon = (select max(reportedon)
from Receivables
where studentid = 8128
这与您的要求类似
var receivables = new List<Receivable>()
{
new Receivable { ReportedOn = DateTime.Now.AddDays(-5), StudentId = 8128, TotalDue = 5.43 },
new Receivable { ReportedOn = DateTime.Now.AddDays(-4), StudentId = 8128, TotalDue = 4.32 },
new Receivable { ReportedOn = DateTime.Now.AddDays(-3), StudentId = 8128, TotalDue = 3.21 },
new Receivable { ReportedOn = DateTime.Now.AddDays(-2), StudentId = 8128, TotalDue = 2.10 },
new Receivable { ReportedOn = DateTime.Now.AddDays(-1), StudentId = 2818, TotalDue = 1.09 },
new Receivable { ReportedOn = DateTime.Now, StudentId = 2818, TotalDue = .98 }
};
var totDue = receivables
.Where(receivable => receivable.StudentId == 8128)
.OrderByDescending(receivable => receivable.ReportedOn)
.Select(receivable => receivable.TotalDue);
Console.WriteLine("{0}", totDue.First());
选中此项:
var max_rep = (from d in Receivables select d.reportedon).Max();
var qry_res = from q in Receivables where q.studentid == 8128 && q.reportedon == max_rep
可能会有帮助你也可以像这样实现你想要的
var res = receivables.Where(s => s.StudentId == 8128)
.OrderBy(s => s.TotalDue).FirstOrDefault();
或
我在你的查询中看不到任何IN子句。我看不到你尝试过的任何LINQ代码。
var res = receivables.OrderBy(s=> s.TotalDue)
.FirstOrDefault(s => s.StudentId == 8128);