1

我有2個模型客戶表和產品表。我是很新的MVC和我創建了一個模型,我對細節的自動生成控制器和視圖,刪除,創建...等...如何基於MVC 4中的另一個表顯示表中的值?

我的車型有:

[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加入,但我如何組合控制器。所以我想根據另一個表中的數據顯示一些數據。

+0

您可能想看看本教程中關於ASP.NET MVC應用程序中的相關數據:http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc /讀出相關的數據與 - 的實體框架功能於一個-ASP淨MVC的應用程序。 (如果你還沒有這樣做,我也建議遵循完整的教程。) – kdrvn

+0

是的,我試圖堅持一個MVC 4教程,它並沒有幫助我,但這看起來不錯! – Pittfall

+0

如果您是從MVC開始的,那麼您可以按照MVC 3教程進行操作,因爲它們通常可以與MVC 4一起使用。稍後,您可以開始使用此最新版本中引入的新功能。 – kdrvn

回答

3

您需要將導航屬性添加到客戶。

[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); 
} 
相關問題