1

このような質問をするのは珍しいことではありませんが、道に迷うと思うので助けを求めます。関係 1:N のテーブルが必要です。より明確にするために、管理スタジオからの印刷画面を投稿します。

テーブル関係

私はasp.net mvc 3プロジェクトに取り組んでおり、すべてDocumentsが表示されるビューを作成する必要があります(およびいくつかのフィルターなどがありますが、この場合は関係ないと思います)。テーブルからのデータと、テーブルDocumentsからのドキュメントごとに 1 つの特定のレコードのみが必要DocumentFieldsです。このレコードはドキュメントの名前を保持するレコードであり、その一意性は DocumentID == Docmuents.Id、DocumentFields.RowNo == 1 および DocumentsFields.ColumnNo == 2 です。これはすべてのドキュメントの一意のレコードであり、取得する必要がありますFieldValue。ドキュメントの名前を実際に保持するこのレコード。

クエリを作成する方法がよくわかりません (おそらく JOIN を使用します)。また、型のモデルを渡してビューを強く型付けしたいDocumentsと思いますが、それが可能かどうかはわかりませんが、クエリの方法に応じて考えますis build は、ビューのモデルのタイプを決定します。

4

1 に答える 1

3

あなたが望むのは次のようなものだと思います:

var results = 
    from d in dbContext.Documents
    join df in dbContext.DocumentFields 
    on new { d.Id, RowNo = 1, ColumnNo = 2 } equals 
       new { Id = df.DocumentId, df.RowNo, df.ColumnNo }
    select new 
    {
        Document = d,
        DocumentName = df.FieldValue
    };

もちろん、ナビゲーション プロパティを設定する場合は、次のようにするだけです。

var results = 
    from d in dbContext.Documents
    let df = d.DocumentFields.First(x => x.RowNo == 1 && x.ColumnNo == 2)
    select new 
    {
        Document = d,
        DocumentName = df.FieldValue
    };
于 2013-05-10T06:05:44.867 に答える