我正在尝试执行嵌套的lambda表达式,如下所示:
textLocalizationTable.Where(
z => z.SpokenLanguage.Any(
x => x.FromCulture == "en-GB")
).ToList();
但我得到错误:
Member access 'System.String FromCulture' of
'DomainModel.Entities.SpokenLanguage' not legal on type
'System.Data.Linq.EntitySet`1[DomainModel.Entities.SpokenLanguage].
TextLocalization与口语语言有这种关系:
[Association(OtherKey = "LocalizationID", ThisKey = "LocalizationID", Storage = "_SpokenLanguage")]
private EntitySet<SpokenLanguage> _SpokenLanguage = new EntitySet<SpokenLanguage>();
public EntitySet<SpokenLanguage> SpokenLanguage
{
set { _SpokenLanguage = value; }
get { return _SpokenLanguage; }
}
知道出了什么问题吗?
我已经尝试了同样的错误。
Spokenlanguage现在有这种关联:
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; }
}
在datacontext上添加:
DataLoadOptions dlo = new DataLoadOptions();
dlo.LoadWith<TextLocalization>(text => text.SpokenLanguage);
dc.LoadOptions = dlo;
还有什么想法吗?梅比,我只是误解了一些基本的东西?
答案 0 :(得分:1)
问题肯定是“Linq to SQL”的问题,很可能是关联。
以下是一些建议: