0

该问题是从原始帖子演变而来的,因此为了扩大结果,我添加了一个单独的问题。

最初的任务得到了回答,但在这样做的过程中,我遇到了一个困扰我的新问题。请参阅此处的原始帖子:LINQ 初学者,文档版本的表连接查询

这是一个文档修订系统。我们正在使用两个表。一旦用户创建了新文档,信息就会添加到Document表中。此时,文档表有一个设置为 0 的修订版和一个设置为空的 dateApproved。主键是 documentID。

现在,如果用户编辑该文档,则会在新表中创建一行Version

这是我拥有的 Linq,它正确地返回了所有需要批准的文档(2 个全新文档,Documents表中只有一行,1 个文档已经过编辑,因此它在 Documents 和 中有一行Version)。

var docs = db.IPACS_Document
               .Where(x => x.dateApproved == null 
                          || x.IPACS_Version.Any(y => y.dateApproved == null));

上面的 Linq 正确识别了所有需要批准的 3 个文档,但是对于在Documents表格和Version表格中有一行的文档。它正在返回 Document 表中的信息(实际上我需要 Version 表中已编辑项目的信息)。

有没有办法返回已编辑文档的版本表信息,它已经正确返回了全新文档的信息。

4

1 回答 1

1

您需要IEnumerable.Union,但它仅适用于相同的元素类型。您有 2 种类型:VersionDocument.

检查这个答案如何使用它。

于 2013-04-10T21:25:32.833 回答