我想在使用linq在mvc中绑定数据时给出多个where where条件。我尝试了与sql查询和其他类型相同的条件,但没有工作并显示错误,即
指定的类型成员' YearID' LINQ不支持 实体。仅初始化程序,实体成员和实体导航 支持属性。
这是我最近尝试过的代码,
public ActionResult FilterImage(int yearID, int eventID, int branchID)
{
var content = db.eventRegistration.Select(s => new
{
s.EventRegistrationID,
s.Image,
s.IsActive
});
List<EventRegistrationViewModel> contentModel = content
.Select(item => new EventRegistrationViewModel()
{
EventRegistrationID = item.EventRegistrationID,
Image = item.Image,
IsActive = item.IsActive
})
.Where(c => c.IsActive == true && c.YearID == yearID && c.BranchID == branchID)
.Take(15).ToList();
return View(contentModel);
}
此代码不适用于多个where条件。
我知道,这个问题几乎是在上一次问到的,但是那个答案对于这个解决方案来说也没有用。
谢谢。
答案 0 :(得分:1)
我不知道您在尝试什么,但解决方案位于content
列表中,您必须选择YearID
和BranchID
,因为在where
您正在使用它。
我不知道你需要所有的属性,或者不是不同的讨论,但截至目前你可以这样做
public ActionResult FilterImage(int yearID, int eventID, int branchID)
{
var content = db.eventRegistration.Select(s => new
{
s.EventRegistrationID,
s.Image,
s.IsActive,
s.YearID,
s.BranchID
}).ToList();
List<EventRegistrationViewModel> contentModel = content.Select(item => new EventRegistrationViewModel()
{
EventRegistrationID = item.EventRegistrationID,
Image = item.Image,
IsActive = item.IsActive
}).Where(c => c.IsActive == true && c.YearID == yearID && c.BranchID == branchID).Take(15).ToList();
return View(contentModel);
}