我有两个表,订阅和主题。每个订阅都与特定的TopicID(主题表的PK)相关。第一个查询工作正常,并检索今天上传的所有视频的topicID。
当我尝试将query1的结果用作查询2的where-in子句时,会出现问题。我继续接收未设置为对象实例的对象引用。
查询1
IQueryable<int> topics = (from t in dataLayer.Videos
where SqlMethods.DateDiffDay(t.DateCreated, DateTime.Today) == 0
select t.TopicID).Distinct();
查询2(失败)
IQueryable<Subscription> subs = from s in dataLayer.Subscriptions
where topics.Contains(s.TopicID)
select s;
失败时生成的Linq查询是{Table(Subscription).Where(s => value(EmailSubscribers+<>c__DisplayClass0).topics.Contains(s.TopicID))}
对此有任何见解将不胜感激。我看了网周围的一些样品,它们似乎都和我的相同。
答案 0 :(得分:3)
您可能需要ToList()您的第一个查询,以便明确执行。