public class ProductsController : Controller
{
private NORTHWINDEntities db = new NORTHWINDEntities();
// GET: Products
public ActionResult Index()
{
var products = db.Products.Include(p => p.Categories).Include(p => p.Suppliers);
return View(products.ToList());
}
}
products.ToList() で何が取得できるかと言うと、List<Products> 型のオブジェクトで、Products は Model です。既存のデータベースから Entity Data Model (EDM) を作った際 Products クラスが自動生成されます。参考に自動生成された Products クラスのコードを以下に貼っておきます。
namespace Mvc5App
{
using System;
using System.Collections.Generic;
public partial class Products
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public Products()
{
this.Order_Details = new HashSet<Order_Details>();
}
public int ProductID { get; set; }
public string ProductName { get; set; }
public Nullable<int> SupplierID { get; set; }
public Nullable<int> CategoryID { get; set; }
public string QuantityPerUnit { get; set; }
public Nullable<decimal> UnitPrice { get; set; }
public Nullable<short> UnitsInStock { get; set; }
public Nullable<short> UnitsOnOrder { get; set; }
public Nullable<short> ReorderLevel { get; set; }
public bool Discontinued { get; set; }
public virtual Categories Categories { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<Order_Details> Order_Details { get; set; }
public virtual Suppliers Suppliers { get; set; }
}
}
MVC 全体で Model をどのように使うかは以下の画像を見てください。
図では 3 つの異なる Model が存在するように見えますが、各 Model 間で重なっている部分があります・・・と言うか、上の Puroducts クラスの例では、3 つの場所で同じものを使うという感じです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/21 06:59