2010-03-20 3 views
2

ce qui ne va pas avec ce codeLINQ dans la sélection objet personnalisé

public List<SearchItem> Search(string find) 
     { 


      return (from i in _dataContext.News where i.Text.Contains(find) select new SearchItem { ControllerAction = "test", id = i.Id.ToString(), LinkText = "test" }).ToList(); 
     } 

public struct SearchItem 
    { 
     public string ControllerAction; 
     public string LinkText; 
     public string id; 
    } 

Répondre

2
new SearchItem() {...} 

// pas .ToList() ou bien vous n'avez pas besoin de la classe (classe s/ba la propriété get/set), vous pourriez juste dire nouveau

+0

pouvez-vous expliquer au sujet de aucun ToList et obtenir/placer? – kusanagi

+0

comme vous pouvez le voir il n'est pas classe mais struct, j'ai besoin de classe? – kusanagi

+0

J'apprends l'art de la réponse rapide ... Le seul must, en raison de la méthode sig, est ToList (). Vous pourriez utiliser une structure avec des membres publics, mais c'est un «problème philosophique» et cela limiterait vos options de liaison de données et de versionnage. Les classes avec des propriétés sont plus la "norme" esp quand public. En plus de l'affectation via {} vous pouvez utiliser des méthodes ctor (entre parenthèses). Avoir un ctor sans paramètre implicite/explicite disponible est avantageux pour les classes utilisées avec des collections ou des contraintes génériques (mais struct a besoin d'un ctor sans paramètre implicite). Utilisez struct si cela a du sens. –

Questions connexes