使用C#LINQ和MongoDB进行子查询或与嵌入式/嵌套文档联接

问题描述 投票:3回答:1

我正在尝试做类似下面的例子,但是却得到了异常-System.ArgumentException:方法类型为'System.Collections.Generic.IEnumerable1 ' cannot be used for parameter of type 'System.Linq.IQueryable1'的表达式。这是我的代码和相关的类。我该如何解决这个问题,除了尝试之外,还有什么办法。

    var channels = _channelService.Collection;
    var tracks = _trackService.Collection;

    var query = from b in tracks.AsQueryable()
                select b;

    var data = (from q in channels.AsQueryable()
               from p in q.Episodes
               //from x in  trackcoll.AsQueryable()
               select new
               {
                   p,
                   Tracks = query.Where(w => p.Tracks.Contains(w.Id))
               }).ToList();

// Related classes
    public class ContentBase : IAuditable
    {
        public string Id { get; set ; }
        public string CreatedBy { get ; set ; }
        public string CreatedOn { get ; set ; }
        public string UpdatedBy { get ; set ; }
        public string UpdatedOn { get; set; }
    }

    public class Channel: ContentBase
    {
        public List<Episode> Episodes { get; set; }
    }

    public class Episode: ContentBase
    {
        // List of track Id
        public List<string> Tracks { get; set; }
    }
    public class Track: ContentBase
    {
        public string TrackUrl { get; set; }
        public string Duration { get; set; }
        public string Size { get; set; }
        public string ContentType { get; set;

    }
c# mongodb linq mongodb-.net-driver
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.