LINQ to SQL 加入 orderby
LINQ to SQL Join orderby
我是LINQ的新手,刚加入,所以如果我问错了请原谅我。
我有两张桌子
表 1
id name date
1 Mike 20-10-15
2 John 21-10-15
3 Sam 23-10-15
表2
id name date
1 Ashle 19-10-15
2 Lily 21-10-15
3 Jeni 22-10-15
4 April 23-10-15
我需要使用 Joins 的 5 条记录,并且应该按日期排序,最近的记录。
你们能帮帮我吗,我真的需要弄清楚 Joins 如何与 orderby 一起工作。
谢谢
编辑:
它们是两个不同的表,所以没有外键,所以我想我不能使用 Join,到目前为止我所做的是这样的
var combinddata = (from t1 in db.Table1
select t1.id)
.Concat(from t2 in db.Table2
select t2.id);
我不知道如何只获取 5 条记录如何比较基于 DateTime 的两个表中的记录。
输出应该是
- 山姆
- 4 月
- 珍妮
- 约翰
- 莉莉
var query =
from Table1 in table1
join Table2 in table2 on table1.id equals table2.id
orderby table1.date ascending
select table1.date;
试试这个方法
var combinddata = (from t1 in db.Table1
select t1.Name)
.Concat(from t2 in db.Table2
select t2.Name).OrderByDescending(x => x.date).Take(5);
您可以连接来自不同表的相同匿名类型。如果你也 select 日期,你可以按它们降序排列,并取前 5 条记录:
Table1.Select (t1 =>
new
{
Id = t1.Id,
Name = t1.Name,
Date = t1.Date
}
).Concat(
Table2.Select (t2 =>
new
{
Id = t2.Id,
Name = t2.Name,
Date = t2.Date
}
))
.OrderByDescending (x => x.Date).Take(5)
请注意,这会优先考虑 Table1
中的项目。如果串联结果中的项目 5 和 6 在同一日期,但分别来自 Table1
和 Table2
,您只能从 Table1
.
获得项目
如果需要,您可以 select 仅显示此结果中的姓名,但我假设您的输出仅显示预期的记录顺序,而不是确切的预期结果。
我是LINQ的新手,刚加入,所以如果我问错了请原谅我。 我有两张桌子
表 1
id name date
1 Mike 20-10-15
2 John 21-10-15
3 Sam 23-10-15
表2
id name date
1 Ashle 19-10-15
2 Lily 21-10-15
3 Jeni 22-10-15
4 April 23-10-15
我需要使用 Joins 的 5 条记录,并且应该按日期排序,最近的记录。
你们能帮帮我吗,我真的需要弄清楚 Joins 如何与 orderby 一起工作。 谢谢
编辑: 它们是两个不同的表,所以没有外键,所以我想我不能使用 Join,到目前为止我所做的是这样的
var combinddata = (from t1 in db.Table1
select t1.id)
.Concat(from t2 in db.Table2
select t2.id);
我不知道如何只获取 5 条记录如何比较基于 DateTime 的两个表中的记录。
输出应该是
- 山姆
- 4 月
- 珍妮
- 约翰
- 莉莉
var query =
from Table1 in table1
join Table2 in table2 on table1.id equals table2.id
orderby table1.date ascending
select table1.date;
试试这个方法
var combinddata = (from t1 in db.Table1
select t1.Name)
.Concat(from t2 in db.Table2
select t2.Name).OrderByDescending(x => x.date).Take(5);
您可以连接来自不同表的相同匿名类型。如果你也 select 日期,你可以按它们降序排列,并取前 5 条记录:
Table1.Select (t1 =>
new
{
Id = t1.Id,
Name = t1.Name,
Date = t1.Date
}
).Concat(
Table2.Select (t2 =>
new
{
Id = t2.Id,
Name = t2.Name,
Date = t2.Date
}
))
.OrderByDescending (x => x.Date).Take(5)
请注意,这会优先考虑 Table1
中的项目。如果串联结果中的项目 5 和 6 在同一日期,但分别来自 Table1
和 Table2
,您只能从 Table1
.
如果需要,您可以 select 仅显示此结果中的姓名,但我假设您的输出仅显示预期的记录顺序,而不是确切的预期结果。