【发布时间】:2020-05-19 19:06:10
【问题描述】:
我有 2 个实体:帖子和文章,我需要同时选择它们并按公共属性排序。我正在寻找一些“加入”的可能性,但我发现的只是以 ...where a.id == b.a_id 之类结尾的示例,这与我的情况无关。
这是我的模型
class BaseEntity {
public int Id;
public DateTime AddedDate;
}
class Post extends BaseEntity {
public string Title;
}
class Article extends BaseEntity {
public string Name;
}
对于该数据:
Articles:
Id | Name | AddedDate
1 | AAA | 15/05/2020 18:00:00
2 | BBB | 17/05/2020 18:00:00
3 | CCC | 19/05/2020 18:00:00
Posts:
Id | Title | AddedDate
1 | DDD | 16/05/2020 18:00:00
2 | EEE | 18/05/2020 18:00:00
3 | FFF | 20/05/2020 18:00:00
当按日期 DESC 排序并将其限制为 4 时,我需要以类似或类似的方式结束:
Article Id | PostId | Name | Title | AddedDate
NULL | 3 | NULL | FFF | 20/05/2020 18:00:00
3 | NULL | CCC | NULL | 19/05/2020 18:00:00
NULL | 2 | NULL | EEE | 18/05/2020 18:00:00
2 | NULL | BBB | NULL | 17/05/2020 18:00:00
有人能以某种方式给我建议吗?我需要在 EF Core 中执行此操作。
我可以像这样构造整个列表并对其进行操作,但这远非最佳:
var results = (new List<BaseEntity>()).Concat(_context.Posts.ToList());
results = results.Concat(_context.Articles.ToList()).ToList();
//order
//take(x)
【问题讨论】:
-
对于这个例子,请检查堆栈链接中的顶部答案 [stackoverflow.com/questions/11426615/linq-union-usage][1]
标签: c# entity-framework entity-framework-core