【问题标题】:how to give multiple where condition using linq query in mvc [duplicate]如何在mvc中使用linq查询给出多个where条件[重复]
【发布时间】:2017-11-22 20:21:33
【问题描述】:

我想在使用 linq 在 mvc 中绑定数据时给出多个 where 条件。我尝试了与 sql 查询和其他类型相同的条件,但没有工作并显示错误,即

LINQ to 中不支持指定的类型成员“YearID” 实体。只有初始化器、实体成员和实体导航 支持属性。

这是我最近尝试过的代码,

 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 条件。

我知道,以前几乎有人问过这个问题,但那个答案也不适用于这个解决方案。

谢谢。

【问题讨论】:

  • 问题不在多个条件下。问题在于使用YearID 属性的单一条件。
  • 你能给出这个问题的解决方案吗
  • 你应该展示属性YearID在你的实体中是如何定义的
  • 对不起....我没听懂....???
  • 我也看到你说的那个问题是重复的,但没有得到我的问题解决方案。

标签: asp.net-mvc linq


【解决方案1】:

我不知道您在尝试什么,但解决方案在 content 列表中,您必须选择 YearIDBranchID 因为在 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);
}

【讨论】:

  • 我做过同样的事情,也在我的问题中描述过,因此它显示错误。
  • 哦,我想我明白了,我忘了在content 中添加ToList() 请查看更新后的答案
  • @Curiousdev 将整个数据库表带到客户端,而不在数据库端应用任何过滤
  • 哦,是的,我知道@SergeyBerezovskiy,这就是为什么我已经提到他在做什么,我完全不知道
  • @Curiousdev 我已经完成的相同代码正确地看到了我的问题。
猜你喜欢
  • 2021-11-05
  • 1970-01-01
  • 2015-02-10
  • 2021-08-07
  • 2014-05-15
  • 1970-01-01
  • 2020-05-09
  • 1970-01-01
  • 2019-03-10
相关资源
最近更新 更多