日期:2014-05-20  浏览次数:20883 次

字典需要类型“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]”的模型项。


非常困惑加不解,求大神帮忙解释解释。。。
C# MVC LinQ .net

------解决方案--------------------
是你的View文件里面指定的modal和你传进去的不一样,看cshtml