C# 在select语句中使用EF和Linq以及exclude属性

C# 在select语句中使用EF和Linq以及exclude属性,c#,linq,entity-framework,C#,Linq,Entity Framework,这些方法是通过VS2012和VSC中的实体框架和Linq创建的, 因此,我想调用一个名为Categories的模型。 每个类别都有一个parentID,可以为null,也可以为set,这会导致多重性。 因此,我们有一个父类别,该类别有类别a的子类别 System.Data.Objects.DataClasses.EntityCollection<< Category >> 但是,每个类别都有一个包含大量数据的单一属性,我们只想在父级上加载该特定属性。 目前的代码是: s

这些方法是通过VS2012和VSC中的实体框架和Linq创建的, 因此,我想调用一个名为Categories的模型。 每个类别都有一个parentID,可以为null,也可以为set,这会导致多重性。 因此,我们有一个父类别,该类别有类别a的子类别

System.Data.Objects.DataClasses.EntityCollection<< Category >>
但是,每个类别都有一个包含大量数据的单一属性,我们只想在父级上加载该特定属性。 目前的代码是:

selectedCategory = categoryObjectContext.Category.Single<Category>(cat => cat.CategoryID == selectedID);

您需要使用投影查询结果。选择并使用Where子句筛选数据:

int parentID = categoryObjectContext.Category.Where(cat => cat.CategoryID == selectedID)
                   .Select(cat => cat.parentID) // Project the query results into a single field
                   .First(); // This will only select one column

确切的问题是什么?对不起,问题是:我如何选择家长,并获得孩子,但只获得孩子的选择性属性,而不是整个孩子的类。太棒了!但是,我怎样才能让父母那样呢?选择父项仍将自动填充所有子项。您可以在select语句中选择类别的任何属性,并且只会回拉选定的属性,例如,Selectcat=>cat.parent.parentCategoryName只回拉父类别名称的字符串。Selectcat=>cat.parent选择整个父级。问题出在这里,选择父级将导致相同的问题。父对象拥有子对象的属性数组,而子对象又在每个子对象中拥有大量数据。也许我应该补充一点,我想要孩子,只是不想要他们的所有财产。@JohnW我理解,但你可以做的事情真的没有限制。选择,你只需要根据自己的要求来定制。如果我理解正确:.Selectcat=>cat.parent.children.Selectchild=>new{child.Id,child.Name}将只选择父类别中每个子类别的Id和名称