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

您需要向客户添加一个导航属性。

[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 回答