我使用实体框架5,我有这些类:为什么我不能在LINQ声明中使用多个包含级别?
public partial class Subject
{
public int SubjectId { get; set; }
public string Name { get; set; }
public virtual ICollection<Topic> Topics { get; set; }
}
public partial class Topic
{
public int TopicId { get; set; }
public string Name { get; set; }
public int SubjectId { get; set; }
public virtual Subject Subject { get; set; }
public virtual ICollection<SubTopic> SubTopics { get; set; }
}
public partial class SubTopic
{
public int SubTopicId { get; set; }
public string Name { get; set; }
public int TopicId { get; set; }
public virtual Topic Topic { get; set; }
}
现在我想写一个LINQ查询来填充这个类:
public class TopicSubTopicSelect
{
public int TopicId { get; set; }
public int SubTopicId { get; set; }
public string TopicName { get; set; }
public string SubTopicName { get; set; }
}
到目前为止,我有这样的:
return _subjectsRepository
.GetAll()
.Where(s => s.SubjectId == subjectId)
.Include(s => s.Topics)
.Include(s => s.Topics.) <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
.AsEnumerable()
.Select(item => new TopicSubTopicSelect(item.TopicId,
item.SubTopicId,
item.Topic.Name,
item.Name))
.ToList();
但它给了我在哪里,我把< < < <行的错误
我想什么是有.INCLUDE(S => s.Topics.SubTopics)
但IntelliSense不给我这个作为一个选项。我什么任何想法 做错了,我怎么能修改LINQ来获取数据,填补了TopicSubTopicSelect类
当问到关于linq的问题时,不要忘记包含关于您使用的提供程序的信息。 Linq-to-Objects,实体框架,Linq-to-SQL等等都非常不同。 – CodesInChaos
对不起,这是实体框架 – Melina