- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在构建一个 wiki,其中包含由子文章组成的文章。一篇文章可以包含多个子文章,一个子文章可以附加到多个文章。在 jointable 中有一个 sortorder,它定义了特定文章的子文章的显示。父文章仅包含标题(和元数据),没有文本,所有文本都通过子文章完成。
虽然可连接中的排序顺序是我在 atm 卡住的地方,但我无法通过查询访问它。希望有人能指出我正确的方向。
旁注:我在整个 MVC/EF 世界中都是新手,即使是 c#/vb 和 .NET 也是我几个月以来才在业余时间从事的工作。
我有这些类(class):
文章:
public class Article : BaseEntity
{
private ICollection<Category> _categories;
private ICollection<ArticleSubarticle> _subarticles;
public string Title { get; set; }
public int AuthorId { get; set; }
public DateTime CreationDate { get; set; }
public DateTime ?PublishDate { get; set; }
public DateTime ?ChangeDate { get; set; }
public bool Published { get; set; }
public virtual ICollection<Category> Categories
{
get { return _categories ?? (_categories = new List<Category>()); }
protected set { _categories = value; }
}
public virtual ICollection<ArticleSubarticle> Subarticles
{
get { return _subarticles ?? (_subarticles = new List<ArticleSubarticle>()); }
protected set { _subarticles = value; }
}
}
副文章
public class Subarticle : Article
{
private ICollection<Attachment> _attachments;
public string ArticleText { get; set; }
public int OriginalArticle { get; set; }
public bool Active { get; set; }
public virtual ICollection<Attachment> Attachments
{
get { return _attachments ?? (_attachments = new List<Attachment>()); }
protected set { _attachments = value; }
}
}
可联合:
public class ArticleSubarticle : BaseEntity
{
public int ParentId { get; set; }
public int ChildId { get; set; }
public int SortOrder { get; set; }
public virtual Article Parent { get; set; }
public virtual Subarticle Child { get; set; }
}
它们的映射如下:
文章
public ArticleMap () {
ToTable("Wiki_Article");
HasKey(a => a.Id);
Property(a => a.Title).HasColumnType("VARCHAR").HasMaxLength(250);
Property(a => a.AuthorId);
Property(a => a.PublishDate).IsOptional();
Property(a => a.ChangeDate).IsOptional();
HasMany(a => a.Categories)
.WithMany()
.Map(a => a.ToTable("Wiki_Article_Category_Mapping"));
}
副文章
public SubarticleMap()
{
ToTable("Wiki_Subarticle");
HasKey(sa => sa.Id);
Property(a => a.ArticleText)
.IsOptional()
.HasColumnType("TEXT");
Property(a => a.OriginalArticle)
.IsOptional();
HasMany(a => a.Attachments)
.WithMany()
.Map(a => a.ToTable("Wiki_Subarticle_Attachment_Mapping"));
}
可联合
public ArticleSubarticleMap()
{
ToTable("Wiki_Article_Subarticle_Mapping");
HasKey(asa => new { asa.ParentId, asa.ChildId });
HasRequired(asa => asa.Parent)
.WithMany(asa => asa.Subarticles)
.HasForeignKey(asa => asa.ParentId);
}
这让我得到了预期的数据库。
现在我想要一篇文章及其子文章,它们按排序顺序排序。此查询为我提供了文章及其子文章,但我似乎无法弄清楚如何在 Wiki_Article_Subarticle_Mapping 表中找到此排序顺序。
public IList<Article> getArticleByIdWithSortedSubarticles(int ArticleId)
{
var query = _articleRepository.Table;
query = query.Where(a => ArticleId == a.Id)
.Select(a => a);
var subarticles = query.ToList();
return subarticles;
}
有什么想法吗?
提前致谢!
最佳答案
您的查询目前没有加载子文章,所以我猜它们是延迟加载的。尝试像这样显式加载它们:
public IList<Article> getArticleByIdWithSortedSubarticles(int ArticleId)
{
var query = _articleRepository.Table;
query = query.Where(a => ArticleId == a.Id)
.Select(a => new { article = a, subs = a.SubArticles.OrderBy(s => s.SortOrder) });
return query.AsEnumerable().Select(m => m.article).ToList();
}
关于c# - EF代码先FLUENT : many to many with additional field in jointable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31643174/
作为一个小项目(没有什么关键任务),我决定尝试用 C# 编写 GOST 28147-89 的实现。但是,在阅读 RFC 5830 时(定义 GOST 28147-89 的信息),我注意到了这一点。 (
我在 Android JNI 上使用 Neon 实现了一个算法。当我想将向量相加时,我注意到有两种类型的方法,但我看不出其中的区别。 // pairwise addition int8x8_t vpa
我想知道为什么 STL 没有重载它们的算法函数,这样我就可以通过简单地提供一个容器而不是采用更冗长的方式来传递开始 + 结束迭代器来调用它们。我当然理解为什么我们还想使用迭代器对来处理容器/数组的子序
我想知道为什么 STL 不会重载它们的算法函数,这样我就可以通过简单地提供一个容器而不是采用更冗长的方式来传递 begin + end 迭代器来调用它们。我当然理解为什么我们还想使用迭代器对来处理容器
假设我有两个模块 - Module1、Module2。 每个模块在 Visual Studio 中都有自己的项目。 如何使用“附加模块依赖项”或“附加 BMI 目录”设置将模块 2 导入模块 1? 问
我有一个问题 df = data.frame(col1 = c("A", "B", "C", "A", "A", "B"), col2 = c(0.2, 0.2, 0.6, 1, 0.8, 0.2),
在sencha touch中,我有一个如下声明的轮播: ajaxNav = new Ext.Panel({ scroll: 'vertical', cls: 'card1 dem
我有一个开始日期,如下所示: var beginDate = "29/04/2015"; var beginHour = "13:32"; 我有一些持续时间变量: var hourDuration =
我一直在以一种相当粗糙的函数式方式进行一些动态系统模拟,目前正试图弄清楚 cpp 对象可以为我的代码带来什么。更具体地说,我在考虑以下结构: 我想通过一个抽象类来指定动力系统,比如“DynSys”,用
我想知道是否有办法强制将图像加载为 8U。我在 OpenCV 文档中看到您可以指定是将图像加载为单 channel 还是三 channel ,但没有提及颜色深度。有什么建议吗? 感谢您的帮助!!! :
题目地址:https://leetcode.com/problems/additive-number/description/ 题目描述: Additive number is a string
我已经使用 react-leaflet 有一段时间了,几周后我删除了 node_modules 中的文件并重新安装了它们,我根本没有接触 react-leaflet 版本,但是当我尝试运行时该项目,它
令我惊讶的是,我发现在 TCanvas 上重复渲染文本在某种程度上是“附加的”。我意识到设置 Canvas.Brush.Style:=bsClear 是问题的原因,但我确实需要透明且重复地渲染文本(即
我有一个 pdf 文件,其中包含“UniCNS-UCS2-H”字体,我尝试了 pdfbox 和 pdfrenderer,它们都抛出异常:“UniCNS-UCS2-H”的未知编码 这个字体包含在一个字体
我有一个大多数用户只会使用一次的 Facebook 应用程序。在进入 Facebook 工作流程之前,用户表明他们是否希望自己的墙被写入。基于此,我要么请求 publish_stream 许可,要么不
我正在尝试使用 CodeIgnitor 在 php、mysql 中制作标记表。我已经使用XAMPP并创建了一个数据库。用于存储每条记录。正在从数据库中检索数据,插入的新记录已成功编辑 但问题在于检索总
是否可以为 AppStore 应用审核提供额外的文件? 我们正在开发一个与 SAP 服务器通信的应用程序。为了审查该应用程序,我们设置了一个可供 Apple 访问的测试服务器。但是该服务器上的证书是自
enter image description here 我正在尝试设置我的函数并执行一些重载操作,以便我可以 +、-、==、* 两个矩阵。我在第一次操作重载时遇到了一个问题:加法。 我的程序一直有效
我正在尝试制作一个可以执行各种算术函数的基本计算器,从加法开始!现在我已经弄清楚了它的基本逻辑,但我不确定如何获取两个输入并将其打印出来! #include int main() { cha
这个问题在这里已经有了答案: Showing a Windows form on a secondary monitor? (9 个回答) 关闭 9 年前。 我有一个应用程序,其中有一个我想在第二个
我是一名优秀的程序员,十分优秀!