list - EF Core 按相关数据对列表进行排序
问题描述
我在 ASP.NET Core 3.1 中实现了如下对象:
public class Content: BaseModel
{
public int ContentId { get; set; }
public virtual List<ContentCBlock> ContentCBlocks { get; set; } = new List<ContentCBlock>();
}
public class CBlock : BaseModel
{
public int CBlockId { get; set; }
public virtual List<ContentCBlock> ContentCBlocks { get; set; } = new List<ContentCBlock>();
}
public class ContentCBlock
{
[Key]
public int ContentId { get; set; }
public virtual Content Content { get; set; }
[Key]
public int CBlockId { get; set; }
public virtual CBlock CBlock { get; set; }
public int DisplayOrder { get; set; }
}
和DBContext
modelBuilder.Entity<ContentCBlock>().HasKey(t => new { t.ContentId, t.CBlockId });
modelBuilder.Entity<ContentCBlock>()
.HasOne(c => c.CBlock)
.WithMany(c => c.ContentCBlocks)
.HasForeignKey(cc => cc.CBlockId);
modelBuilder.Entity<ContentCBlock>()
.HasOne(c => c.Content)
.WithMany(c => c.ContentCBlocks)
.HasForeignKey(cc => cc.ContentId);
数据库集:
public DbSet<ContentCBlock> ContentCBlocks { get; set; }
public DbSet<Content> Contents { get; set; }
public DbSet<CBlock> CBlocks { get; set; }
一切正常,关系,lazyLoading,......一切。问题是如何按ContentCBlock.DisplayOrder对内容列表进行排序
PS:我不能换班
解决方案
希望这会帮助你。
_context.Contents.OrderBy(c => c.ContentCBlocks.
OrderBy(c => c.DisplayOrder).Select(c => c.DisplayOrder).FirstOrDefault());
推荐阅读
- jquery - 谷歌地图方向服务正在路由回原点(创建循环),我该如何防止它?
- r - 获取具有不明确碱基 R 的 DNA 序列的所有可能排列
- amazon-web-services - 是否有在 aws athena cli 命令中提供创建外部表语句的有效方法?
- c# - 接口声明中的元组文字
- apache-spark - 在 Keras (databricks) 中直接使用 Spark DataFrame
- javascript - ReactJS Ajax 调用返回 200 和结果,但错误:无法获取
- windows - 使用 7-zip 归档文件,仅将当前日期文件上传到 FTP 服务器,然后删除
- git - 如何使用 REST Api 在 Azure DevOps 中获取与 Git 提交相关的工作项?
- python - 有没有办法将两个键组合成一个?Python
- python - Python Web 抓取:执行速度太慢:如何优化速度