Linq to SQL其中In Clause导致Object未设置为object的实例

时间:2010-07-01 01:15:28

标签: c# asp.net linq-to-sql

我有两个表,订阅和主题。每个订阅都与特定的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))}

对此有任何见解将不胜感激。我看了网周围的一些样品,它们似乎都和我的相同。

1 个答案:

答案 0 :(得分:3)

您可能需要ToList()您的第一个查询,以便明确执行。

相关问题