私はDocument
テーブルとテーブルを持っていVersion
ます。どちらも同じ情報を持っています。ドキュメントが作成されるたびに、ドキュメント テーブルに挿入されます。そのドキュメントが編集されるたびに、Versions テーブルに行が追加されます。
null
承認されるまでのフィールド dateApproved があります。私は現在 MVC 4 承認ページに取り組んでおり、これまで linq に触れたことがなく、linq で行う必要があります。
これらの 2 つのテーブル Document/Version を結合して、dateApproved のアイテムのみを表示するにはどうすればよいですnull
か?
from v in Versions
select v
from v in Document
select v
編集#1
ユーザーが新しいドキュメントを追加すると、このドキュメントがドキュメント テーブルに追加されます。この時点で、ドキュメントには承認が必要です。Documents テーブルの dateApproved フィールドが null です。このドキュメントが承認され、ユーザーが変更を加えると、このドキュメントは既に存在するため、Versions テーブルに行が追加されたとします。これで、このドキュメントは両方のテーブルに存在し、元のドキュメントには dateApproved を持つリビジョン 0 があり、Versions テーブルには dateApproved が null のリビジョン 1 があります。
私が必要としているのは、dateApproved が null の場合、この null が Documents テーブルまたは Versions テーブルにあるドキュメントです。承認された後、Version テーブルの行をそのままにして、承認されたバージョンで Documents テーブルの行を更新します。
キーの主キーは DocumentID です。
編集#2
Peter Kiss のおかげで、承認が必要なすべてのファイルが表示されるようになりました。私が遭遇している問題がもう 1 つあります。正しい 3 つの結果を返しています。2 ファイルが新規で、1 ファイルが編集されています。
2 つの新しいファイルには、ドキュメント テーブルからの情報が正しく表示されます。編集されたファイルにはドキュメント テーブルからの情報が表示されていますが、リビジョン テーブルからの情報が必要です。アイテムがバージョン テーブルに存在する場合はバージョン テーブル情報を返し、バージョン テーブルに存在しない場合 (つまり、新品) はドキュメント テーブル情報を返すようにすることは可能ですか。
私がそれを適切に説明したことを願っています。