试图将IEntity传递给列表构造函数,遇到问题



我有一个客户对象,它有一个销售订单列表。我正试图在我的网页上创建一个部分视图,让我可以使用单选按钮点击并查看每个客户的列表。问题是,在客户控制器中,我需要将客户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">

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

也许你的意思是把客户的销售订单列入名单?

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

public ActionResult _customersSalesOrders(int id)
{
var customer = db.Customers.Find(id);
var salesOrderList = customer.SalesOrders;
return PartialView(salesOrderList);
}

最新更新