我正在使用带有Linq的MVC 4到SQL,在我的控制器类中,我打算从包含多个表的查询中获取一个List,并将其作为List显示在视图中,其中M是模型类:
在控制器中我有这个
public List<HomeViewModel> GetHomeViewModel()
{
dynamic ReservationDay = (from c in hutRes.Clients
join r in hutRes.Reservations on c.ID_Client equals r.FK_Client
join ht in hutRes.Hut_Types on r.FK_HutType equals ht.ID_Hut_Type
join tr in hutRes.Time_Reserves on r.FK_TimeReserve equals tr.ID_Time_Reserve
join tc in hutRes.Type_ClientIds on c.FK_TypeClientId equals tc.ID_Type_ClientId
where r.DateR == DateTime.Now
select new
{
r.ID_Reservation,
tc.ClientId,
Number = c.Number_ID,
c.Name,
c.Phone,
time = tr.TimeReserve,
ReservationDate = r.DateR
}).ToList();
return ReservationDay;
}
public ActionResult Index()
{
return View(GetHomeViewModel());
}
在视图方面,我有这个标题:
@model List<HutReservation.ViewModel.HomeViewModel>
我遇到了这个错误:
Can not implicitly convert type 'System.Collections.Generic.List<<>f__AnonymousType4 <int,string,short,string,string,string,System.DateTime,byte,string,short,string,string>>' in 'System.Collections.Generic.List<HutReservation.ViewModel.HomeViewModel>'
任何人都可以帮助我,我真的被困在这里:(
答案 0 :(得分:2)
问题是您的匿名类型列表无法转换为HomeViewModel
列表。
为什么你使用匿名类型呢?只需在查询中创建一个新的HomeViewModel
实例(Select
一个HomeViewModel
而不是匿名类型。)
答案 1 :(得分:2)
而不是使用LINQ中的匿名类型:
select new HomeViewModel
{
// Set class variables here...
}