2 votes

Question sur les requêtes Linq

J'ai ce code qui renvoie l'identifiant d'une affaire à partir du tableau des auteurs présumés. Ce tableau comporte également une colonne "LastName". Je veux faire une recherche sur le caseID et retourner le LastName mais je ne sais pas comment le coder. J'ai été sur le site de Microsoft à la recherche d'exemples LINQ to SQL mais je n'arrive toujours pas à comprendre. Toute aide serait grandement appréciée !

Ken

public static class AllegedPerpetratorRepository
{
    public static IQueryable<AllegedPerpetrator> GetByCaseID(
        this IQueryable<AllegedPerpetrator> source,
        int caseID)
    {
        return (from s in source where s.CaseID.Equals(caseID) select s); 
    }
}

6voto

Patrick Karcher Points 11927

La toute fin devrait être :

. . . select s.LastName);

Editar :

La suggestion d'Ahmed et la correction de Jeroen :

public static class AllegedPerpetratorRepository
{
    public static IEnumerable<string> GetByCaseID(
        this IQueryable<AllegedPerpetrator> source,
        int caseID)
    {
        return (from s in source where s.CaseID.Equals(caseID) select s.LastName); 
    }
}

0voto

Tony The Lion Points 28208

Avez-vous créé une classe LINQ to SQL à partir de votre base de données en utilisant l'outil de mappage de Visual Studio ?

Vous pouvez ajouter un "nouvel élément", puis ajouter une classe LINQ to SQL basée sur le schéma de votre base de données. L'outil générera les classes à partir des tables pour vous.

Vous pouvez ensuite utiliser ces classes qui représentent les colonnes et les tables de votre base de données (une classe par table) pour utiliser LINQ.

Il existe de bons tutoriels sur LINQ to SQL si vous le recherchez sur Google.

0voto

kd7 Points 16740
var perps = dataContext.AllegedPerpetrator.Where(p=>p.CaseID == caseIdValue)
            .Select(p=>p.LastName)

CaseIdValue est ce que vous passez dans=

0voto

Mr Bell Points 2990

S'il n'existe qu'un seul et unique enregistrement pour l'identifiant de cas donné, vous pouvez utiliser l'expression "Single".

var lastName = dataContext.AllegedPerpetrator.SingleOrDefault(i => i.CaseID == caseId).LastName

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X