im using linq to sql J'ai une entité de mission, qui détient une collection d'affectations. disons que je suis allé interroger la durée totale de toutes les missions par mission.ne comprend pas cette exception
et j'ai écrit la requête suivante:
return db.Missions.Select(m => new MissionNameDays()
{
Name = m.MissionName,
Days = m.Assignments.Sum(a => a.Duration())
});
durée est simplement définie comme (pour faire simple)
public partial class Assignment
{
public int Duration()
{
return 1;
}
}
exécution de ce code me donne l'exception suivante:
Une seule expression peut être spécifiée dans la liste de sélection lorsque la sous-requête n'est pas présenté avec EXISTS.
Description: Une exception non gérée s'est produite lors de l'exécution de la requête Web actuelle . S'il vous plaît examiner le pile trace pour plus d'informations sur l'erreur et d'où il provient dans le code .Détails de l'exception: System.Data.SqlClient.SqlException: Une seule expression peut être spécifiée dans la liste de sélection lorsque la sous-requête ne sont pas introduites par exists.
j'ai remarqué que si je laisse de côté la durée() de la requête (alias
Days = m.Assignments.Sum(a => 1)
cela fonctionne OK
des idées sur la cause de cela?