Linq to Entities Group 之后是 Min
Linq to Entities Group by followed by Min
我想编写以下 SQL 作为 Linq to Entities 语句
select min(enddate), Code
from t1
inner join t2
on t1.t2id = t2.id
group by Code
到目前为止我所拥有的是
var data = ctx.t1.Join(ctx.t2,
one => one.t2id,
two => two.Id,
(one, two) => new {one, two})
.GroupBy(onetwo => onetwo.one.t2id)
.Min(onetwo => WHAT GOES HERE?);
我认为我唯一缺少的是 WHAT GOES HERE?
中的内容。我可能是错的,完全误入歧途,但据我所知,这是我唯一缺少的东西。知道我能做什么吗?
您应该使用 Select
而不是 Min
,否则您将只能 return 一个值。例如,像这样:
var data = ctx.t1
.Join(ctx.t2, one => one.t2id, two => two.Id, (one, two) => new {one, two})
.GroupBy(onetwo => onetwo.one.t2id)
.Select(x => new
{
Code = x.Key,
MinDate = x.Min(g => g.one.EndDate) //This may need to be g.two.EndDate
});
我想编写以下 SQL 作为 Linq to Entities 语句
select min(enddate), Code
from t1
inner join t2
on t1.t2id = t2.id
group by Code
到目前为止我所拥有的是
var data = ctx.t1.Join(ctx.t2,
one => one.t2id,
two => two.Id,
(one, two) => new {one, two})
.GroupBy(onetwo => onetwo.one.t2id)
.Min(onetwo => WHAT GOES HERE?);
我认为我唯一缺少的是 WHAT GOES HERE?
中的内容。我可能是错的,完全误入歧途,但据我所知,这是我唯一缺少的东西。知道我能做什么吗?
您应该使用 Select
而不是 Min
,否则您将只能 return 一个值。例如,像这样:
var data = ctx.t1
.Join(ctx.t2, one => one.t2id, two => two.Id, (one, two) => new {one, two})
.GroupBy(onetwo => onetwo.one.t2id)
.Select(x => new
{
Code = x.Key,
MinDate = x.Min(g => g.one.EndDate) //This may need to be g.two.EndDate
});