Je souhaite sélectionner TeamMembers et, si disponible, l'utilisateur associé.Entity Framework - valeurs linq et null
public IEnumerable<RetailersFiveTeamMember> GetRetailersFiveTeamMembers(int retailLeaderID)
{
var members = this.EntityDataModel.DD_RetailersFiveTeamMember.Where(d => d.CMS_User1.UserID == retailLeaderID)
.Select(d => new RetailersFiveTeamMember
{
DateCreated = d.DateCreated,
Email = d.Email,
User = new CMSUser() { UserEnabled = d.CMS_User.UserEnabled }
}).ToArray();
return members;
Si j'exécute cette requête, je reçois l'erreur suivante (qui est prévu, parce que le CMS_User peut être null):
Le casting type de valeur
Boolean
a échoué parce que la valeur matérialisée estnull
. Le paramètre générique du type de résultat ou la requête doit utiliser un type Nullable.
Je l'ai essayé avec ce morceau de code:
User = d.CMS_User == null ? null : new CMSUser() { UserEnabled = d.CMS_User.UserEnabled }
Puis-je obtenir cette exception:
Impossible de créer une valeur constante de type
MsRetailClub.Core.Entities.RetailersFive.CMSUser
. Seuls les types primitifs (tels queInt32
,String
etGuid
) sont pris en charge dans ce contexte.
Quelqu'un peut-il me montrer la bonne façon de faire cela? Merci beaucoup!
semble que votre problème est lié à la relation CMS_User1. –
Pourquoi ne pas écrire User = d.CMS_User? – Svarog
Hey Svarog: d.CMS_User a beaucoup de propriétés dont je n'ai pas besoin. Donc, si possible, je voudrais sélectionner mes propriétés souhaitées. –