-2
モデルが複数あり、コントローラクラス内のフラットテーブルにこれらのテーブルを結合している場合、ビューをフラットテーブルにアクセスするにはどのようにすればよいですか?MVCでフラットテーブルを使用する
たとえば、モデル(顧客、注文、請求書)に3つのテーブルがあるとします。 注文は外部キー(CustomerID)によって顧客にリンクされ、請求書は外部キー(OrderID)によって注文にリンクされます。
このすべてを1つのフラットテーブルで表示するには(すべての顧客がリストされていますが、注文がなくてもリストに表示されていても、請求書がない場合でも)、次の匿名タイプ:
var FlatTable = (from a in customers
let CustomerID = a.ID
join b in orders on a.ID equals b.CustomerID into ab
from b in ab.DefaultIfEmpty()
let OrderID = b.ID
join c in invoices on b.ID equals c.InvoiceID into ac
from c in ac.DefaultIfEmpty()
let InvoiceID = c.ID
select new {a.CustomerName, CustomerID, OrderID, b.ProductDescription, InvoiceID, c.InvoiceAmount});
return View(FlatTable.ToList());
私のビュー(私のモデルに基づいています)では、どのようにしてFlatTableにアクセスできますか。
私はそれを理解したと思います。私は一般的なViewModelクラスを作成してから、私の匿名型をViewModelクラスのIEnumerableにキャストしなければなりませんでした。 – William