我有一张Document
桌子和一张Version
桌子。两者都有相同的信息。每当创建一个文档时,它就会被插入到文档表中。每当编辑该文档时,就会在版本表中添加一行。
它有一个字段 dateApproved ,null
直到它被批准。我目前正在处理 MVC 4 Approval 页面,我之前从未接触过 linq,它需要在 linq 中完成。
如何加入这两个表 Document/Version 并仅显示 dateApproved 所在的项目null
?
from v in Versions
select v
from v in Document
select v
编辑#1
用户添加一个全新的文档,然后将该文档添加到文档表中。此时,文件需要批准。Documents 表中的 dateApproved 字段为空。假设该文档获得批准,然后用户进行更改,并且由于该文档已经存在,因此将一行添加到 Versions 表中。现在,该文档存在于两个表中,原始文档的修订版 0 和 dateApproved,而 Versions 表的修订版 1 的 dateApproved 为空。
我需要的是 dateApproved 为 null 的文档,这个 null 在 Documents 表或 Versions 表中。批准后,我们保留 Version 表中的行,并使用批准的版本更新 Documents 表中的行。
键主键是 DocumentID。
编辑#2
感谢 Peter Kiss,它现在显示所有需要批准的文件。我又遇到了一个小问题。它返回 3 个正确的结果。2 个文件是全新的,1 个已被编辑。
2个全新的文件正确显示文档表中的信息。编辑后的文件显示文档表中的信息,但我需要修订表中的信息。是否可以让它在版本表中存在时返回版本表信息,在版本表中不存在时返回文档表信息(即全新)。
希望我解释得当。