2017-07-04 3 views
0

Ceci est l'erreur im getting. Ceci est pour une méthode de recherche.surcharge de la méthode d'extension Queryable.contains

Erreur CS1929 'SiteLocation' ne contient pas de définition 'Contient' et la meilleure méthode d'extension surcharge 'Queryable.Contains (IQueryable, string)' nécessite un récepteur de type 'IQueryable'

public ActionResult Index(string projectname) 
    { 
     var projects = db.Projects.Include(p => p.Engineer).Include(p => 
p.SiteLocation); 

     var a = from p in db.Projects.Include(p => p.Engineer).Include(p => 
p.SiteLocation) 
       select p; 
     if (!String.IsNullOrEmpty(projectname)) 
     { 
      //NumberMCP = c.NumberMCP, 
      //Engineer = c.Engineer, 
      //Plink = c.Plink, 
      a = a.Where(c => c.SiteLocation.Contains(projectname)); 
      a = a.Where(c => c.NumberMCP.Contains(projectname)); 
      a = a.Where(c => c.nameProject.Contains(projectname)); 
      //Ptype = c.Ptype, 
       //  Pyear = c.Pyear, 
       //  SiteLocationID = c.SiteLocationID 
       } 


     return View(a.ToList()); 

    } 

Je pense que mon problème est peut-être ceci: IQueryable convertir int chaîne

Répondre

0

problème: Appeliez INT au lieu de chaîne

Resolve:Conversion ToString type si

a = a.Where(c => c.NumberMCP.Contains(projectname) 
        || c.nameProject.Contains(projectname) 
        || c.Engineer.ToString().Contains(projectname) 
        || c.Plink.Contains(projectname) 
        || c.Pyear.ToString().Contains(projectname) 
        || c.SiteLocation.ToString().Contains(projectname) 
        || c.Ptype.Contains(projectname)