字典需要类型“System.Collections.Generic.IEnumerable`1[HotelShow.Model.Customer]”的模型项。
对于Customer表,以下代码是没问题的。。。
public IEnumerable<Model.Customer> GetAllEntities()
{
using(CustomerTableAdapter adapter=new CustomerTableAdapter())
{
//此处的result为IEnumerable<Customer>类型
var result = from c in adapter.GetData()
select new Customer { ID = c.ID, Name = c.Name, Phone = c.Phone };
return result;
}
}
但是,对于Order表,同样的做法就报错了(注:两表存在外键关系):
public IEnumerable<Order> GetAllEntities()
{
using (OrderTableAdapter adapter = new OrderTableAdapter())
{
var result = from o in adapter.GetData()
select new Order { ID = o.ID, Content = o.Content, Remark = o.Remark, CustomerID = o.CustomerID };
return result;
}
}
报错:
传入字典的模型项的类型为“System.Linq.Enumerable+WhereSelectEnumerableIterator`2[HotelShow.SQLDAL.Hotel+OrderRow,HotelShow.Model.Order]”,但此字典需要类型“System.Collections.Generic.IEnumerable`1[HotelShow.Model.Customer]”的模型项。
非常困惑加不解,求大神帮忙解释解释。。。
------解决方案--------------------是你的View文件里面指定的modal和你传进去的不一样,看cshtml