无法将类型"System.Linq.IQueryable<Apps.Model.Applicant>隐式转换为"Apps.Model.Applicant"。MVC3 ASP.NET 存在显


 public ViewResult Index(string currentFilter, string searchString, int? page)
    {
        if (Request.HttpMethod == "GET")
        {
            searchString = currentFilter;
        }
        else
        {
            page = 1;
        }
        ViewBag.CurrentFilter = searchString;

        var connString = ConfigurationManager.ConnectionStrings["ApplicantDB"].ConnectionString;
        List<Applicant> instructors = new List<Applicant>();
        using (var conn = new SqlConnection(connString))
        {
            conn.Open();

             var query = new SqlCommand("SELECT TOP 50 APPLICANT_ID, APPLICANT_Lastname, APPLICANT_FirstName, APPLICANT_MiddleName, APPLICANT_Address, APPLICANT_City"+
                    " FROM APPLICANT", conn);
            var reader = query.ExecuteReader();
            int currentPersonID = 0;
            Applicant currentInstructor = null;

            while (reader.Read())
            {
                var personID = Convert.ToInt32(reader["APPLICANT_ID"]);
                if (personID != currentPersonID)
                {
                    currentPersonID = personID;
                    if (currentInstructor != null)
                    {
                        instructors.Add(currentInstructor);
                    }

                    currentInstructor = new Applicant();
                    currentInstructor.APPLICANT_ID = Convert.ToInt32(reader["APPLICANT_ID"].ToString());
                    currentInstructor.APPLICANT_Lastname = reader["APPLICANT_Lastname"].ToString();
                    currentInstructor.APPLICANT_FirstName = reader["APPLICANT_FirstName"].ToString();
                    currentInstructor.APPLICANT_MiddleName = reader["APPLICANT_MiddleName"].ToString();
                    currentInstructor.APPLICANT_Address = reader["APPLICANT_Address"].ToString();
                    currentInstructor.APPLICANT_City = reader["APPLICANT_City"].ToString();

                }
                if (!String.IsNullOrEmpty(searchString))
                {
                    currentInstructor = instructors.AsQueryable().Where(s => s.APPLICANT_Lastname.ToUpper().Contains(searchString.ToUpper())
                                           || s.APPLICANT_FirstName.ToUpper().Contains(searchString.ToUpper()));
                }
            }
            if (currentInstructor != null)
            {
                instructors.Add(currentInstructor);
            }
            reader.Close();
            conn.Close();
        }
        int pageSize = 10;
        int pageNumber = (page ?? 0);
        return View(instructors.ToPagedList(pageNumber, pageSize));
    }

本行错误

 if (!String.IsNullOrEmpty(searchString))
                {
                    currentInstructor = instructors.AsQueryable().Where(s => s.APPLICANT_Lastname.ToUpper().Contains(searchString.ToUpper())
                                           || s.APPLICANT_FirstName.ToUpper().Contains(searchString.ToUpper()));
                }

这是我第一次遇到这种错误。我在这种错误上浪费了将近2个小时在这种情况下,我希望有人能帮助我。提前感谢那些愿意帮助我的人。非常感谢:)太棒了!

错误提示,您试图将单个对象赋值给list。

 currentInstructor = instructors.AsQueryable().Where(s => s.APPLICANT_Lastname.ToUpper().Contains(searchString.ToUpper())
                                           || s.APPLICANT_FirstName.ToUpper().Contains(searchString.ToUpper()));

如果只能有一个结果,你需要使用SingleOrDefault(),如果有多条记录,使用FirstOrDefault()从结果集中提取第一条记录。

instructors.AsQueryable().Where(s => s.APPLICANT_Lastname.ToUpper().Contains(searchString.ToUpper())
                                               || s.APPLICANT_FirstName.ToUpper().Contains(searchString.ToUpper())).FirstOrDefault();

您可能需要列表中的第一个申请人。

currentInstructor = instructors
    .AsQueryable()
    .Where(s => s.APPLICANT_Lastname.ToUpper().Contains(searchString.ToUpper()) || s.APPLICANT_FirstName.ToUpper().Contains(searchString.ToUpper()))
    .FirstOrDefault();

最新更新