C# 让孩子';查询中的子记录

C# 让孩子';查询中的子记录,c#,entity-framework,C#,Entity Framework,我有以下实体(I18N是本地化实体): 我的问题是如何获取类别本地化信息(请参见查询中的注释) 有人知道怎么做吗?听起来像是你想要的 Name = x.Post.Category.CategoriesI18N.Any(c => c.LanguageCode == "en") ? x.Post.Category.CategoriesI18N.First(c => c.LanguageCode == "en").Name : string.Empty //

我有以下实体(I18N是本地化实体):

我的问题是如何获取类别本地化信息(请参见查询中的注释)


有人知道怎么做吗?

听起来像是你想要的

Name = x.Post.Category.CategoriesI18N.Any(c => c.LanguageCode == "en") 
       ? x.Post.Category.CategoriesI18N.First(c => c.LanguageCode == "en").Name
       : string.Empty // or whatever default you want when a match is not found
或者这样做更有意义

CategoryDto =  x.Post.Category.CategoriesI18N
                .Where(c => c.LanguageCode == "en")
                .Select(c => new CategoryDto {
                     Id = x.Category.Id,
                     Name = c.Name,
                     Slug = c.Slug
                 }).FirstOrDefault()       
如果所有值应来自相同的
类别18n


如果您仍然需要一个
类别,如果没有匹配项,您可以添加一个
??新的分类到{…}
FirstOrDefault()之后

听起来像是你想要的

Name = x.Post.Category.CategoriesI18N.Any(c => c.LanguageCode == "en") 
       ? x.Post.Category.CategoriesI18N.First(c => c.LanguageCode == "en").Name
       : string.Empty // or whatever default you want when a match is not found
或者这样做更有意义

CategoryDto =  x.Post.Category.CategoriesI18N
                .Where(c => c.LanguageCode == "en")
                .Select(c => new CategoryDto {
                     Id = x.Category.Id,
                     Name = c.Name,
                     Slug = c.Slug
                 }).FirstOrDefault()       
如果所有值应来自相同的
类别18n


如果您仍然需要一个
类别,如果没有匹配项,您可以添加一个
??新CategoryTo{…}
FirstOrDefault()之后

正如我在模型中看到的,Category和CategoryI18N实体之间存在一对多关系!因此,您必须为该方法编写一个子查询或另一个查询。正如我在模型中看到的,Category和CategoryI18N实体之间存在一对多关系!因此,您必须为该方法编写一个子查询或另一个查询。