Je suis en train de faire une expression lambda emboîtées comme à la suite:expressions lambda emboîtées et cultures de chaîne
textLocalizationTable.Where(
z => z.SpokenLanguage.Any(
x => x.FromCulture == "en-GB")
).ToList();
mais je reçois l'erreur:
Member access 'System.String FromCulture' of
'DomainModel.Entities.SpokenLanguage' not legal on type
'System.Data.Linq.EntitySet`1[DomainModel.Entities.SpokenLanguage].
TextLocalization a cette relation à spokenlanguage:
[Association(OtherKey = "LocalizationID", ThisKey = "LocalizationID", Storage = "_SpokenLanguage")]
private EntitySet<SpokenLanguage> _SpokenLanguage = new EntitySet<SpokenLanguage>();
public EntitySet<SpokenLanguage> SpokenLanguage
{
set { _SpokenLanguage = value; }
get { return _SpokenLanguage; }
}
Une idée de ce qui ne va pas?
J'ai essayé votre suggestion avec la même erreur.
Spokenlanguage a maintenant cette association:
internal EntityRef<TextLocalization> _TextLocalization;
[Association(ThisKey = "LocalizationID", OtherKey = "LocalizationID", Storage = "_TextLocalization")]
public TextLocalization TextLocalization
{
get { return _TextLocalization.Entity; }
internal set { _TextLocalization.Entity = value; LocalizationID = value.LocalizationID; }
}
Sur le datacontext ceci est ajouté:
DataLoadOptions dlo = new DataLoadOptions();
dlo.LoadWith<TextLocalization>(text => text.SpokenLanguage);
dc.LoadOptions = dlo;
d'autres idées? Mayby il m'a juste mal compris certaines choses fondamentales ??
Est-ce vraiment une question LINQ à SQL? Cela n'a peut-être rien à voir avec les lambdas imbriqués en soi, que j'ai tendance à utiliser abondamment ... – flq
Que se passe-t-il si vous essayez "textLocalizationTable.Where (z => z.SpokenLanguage.Where (x => x.FromCulture ==" en-GB "). Count()> 0) .ToList();"? –
Pouvez-vous montrer la classe 'SpokenLanguage', au moins la propriété en question? – flq