1

顧客テーブルと製品テーブルの 2 つのモデルがあります。私はMVCを初めて使用し、モデルを作成しました。詳細、削除、作成などの自動生成されたコントローラーとビューがあります...など...

私のモデルは次のとおりです。

[Table("Product")]
public class Product
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int ProductId { get; set; }
    public decimal Price { get; set; }
    public int CustomerId { get; set; }
}

[Table("Customer")]
public class Customer
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int CustomerId { get; set; }
    public string Name { get; set; }
}

私の質問は、顧客名に基づいて製品のリストを表示する方法です。明らかに、それらは CustomerId によって結合されていますが、コントローラーを組み合わせるにはどうすればよいですか。そこで、別のテーブルのデータに基づいてデータを表示したいと思います。

4

1 に答える 1

3

ナビゲーション プロパティを Customer に追加する必要があります。

[Table("Customer")]
public class Customer
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int CustomerId { get; set; }
    public string Name { get; set; }

    public virtual ICollection<Product> Products { get; set; }
}

その後、それを使用して顧客の製品にアクセスできます。

public ActionResult ProductsByCustomer(string id)
{
    // Find the customer by name
    var customer = dbContext.Customer.First(c => c.Name == id);

    // Get the customers products
    var customersProducts = customer.Products;

    // Send products to the View to be rendered
    return View(customersProducts);
}
于 2012-11-27T15:28:43.720 に答える