我想学习EF 6 CodeFirst到现有数据库(SQLServer)
当我尝试运行我的项目时出现此错误:
例外
System.ArgumentNullException:值不能为null。参数名称: 源
控制器
public ActionResult Index()
{
var meetings = db.Meetings
.OrderBy(e => e.StartDate)
.Where(e => e.IsPublic)
.Select(e => new MeetingViewModel()
{
MeetingId = e.MeetingId,
MeetingName = e.MeetingName,
MeetingTypeName = e.MeetingType.Name,
LocationName = e.MeetingLocation.Name,
StartDate = e.StartDate,
});
var upcomingMeetings = meetings.Where(e => e.StartDate > DateTime.Now);
var passedMeetings = meetings.Where(e => e.StartDate <= DateTime.Now);
return View(HomeIndex, new HomePageModel());
}
页面模型
public class HomePageModel
{
public IEnumerable<MeetingViewModel> UpcommingMeetings { get; set; }
public IEnumerable<MeetingViewModel> PassedMeetings { get; set; }
}
CSHTML
@model AquaEvent.Common.HomePageModel
<div class="row">
@if (Model.UpcommingMeetings.Any())
{
@Html.DisplayFor(x => x.UpcommingMeetings)
}
</div>
connectioString是EF AutoGenerator而不更改
答案 0 :(得分:2)
您没有在模型中传递集合,UpcommingMeetings
导致视图中出现空异常错误;
var upcomingMeetings = meetings.Where(e => e.StartDate > DateTime.Now);
var passedMeetings = meetings.Where(e => e.StartDate <= DateTime.Now);
return View(HomeIndex, new HomePageModel()
{
UpcommingMeetings = upcomingMeetings,
PassedMeetings = passedMeetings
});