试图将IEntity传递给列表构造函数并遇到麻烦

问题描述 投票:0回答:1

我有一个包含销售订单列表的客户对象。我试图在网页上创建局部视图,使我可以使用单选按钮单击并查看每个客户的列表。问题是,在客户控制器中,我需要将客户IEntity(通过id)传递给构造函数。

我曾尝试查找此内容,但我对此并不陌生,我认为我使用的单词不正确,或者可能我只是不太了解,无法在其他人的代码中找到答案。

客户对象(显然是构造函数)

public class Customer : IEntity 
{
    [Key]
    public int CustomerId { get; set; }
    public int Id => CustomerId;
    [Display(Name = "First Name")]
    public string FirstName { get; set; }
    [Display(Name = "Last Name")]
    public string LastName { get; set; }
    [Display(Name = "Customer")]
    public virtual string Name => $"{FirstName} {LastName}";
    [Display(Name = "Address")]
    public string Address1 { get; set; }
    public string Address2 { get; set; }
    [Display(Name = "City")]
    public string City { get; set; }
    [Display(Name = "State")]
    public string State { get; set; }
    [Display(Name = "Zipcode")]
    public string Zipcode { get; set; }
    [Display(Name = "Email")]
    public string Email { get; set; }
    [Display(Name = "Phone Number (USA)")]
    public string UsaPhone { get; set; }
    public decimal TotalSales => SalesOrders.Sum(so => so.OrderTotal);
    public List<SalesOrder> SalesOrders { get; private set; }
    public Customer()
    {
        SalesOrders = new List<SalesOrder>();
    }

}

来自出现错误的客户控制器的代码

public ActionResult _customersSalesOrders(int id)
    {
        var customer = db.Customers.Find(id);
        var salesOrderList = new List<SalesOrder>(customer);
        return PartialView(salesOrderList);
    }

结果为错误CS1503“参数1:无法从'ITP245.Models.Customer'转换为'int']

c# model-view-controller ienumerable
1个回答
1
投票

您正在创建一个新的List<SalesOrder>,这意味着您只能在其中放置SalesOrder类型的对象。您的Customer类不会继承自SalesOrder,也无法放入列表中。

也许您是想将客户的销售订单放入列表中?

如果是这样,您的代码可能看起来像这样:

public ActionResult _customersSalesOrders(int id)
{
    var customer = db.Customers.Find(id);
    var salesOrderList = customer.SalesOrders;
    return PartialView(salesOrderList);
}
© www.soinside.com 2019 - 2024. All rights reserved.