C# 分组时过滤空值

C# 分组时过滤空值,c#,.net,linq-to-sql,C#,.net,Linq To Sql,我有以下linq到sql: int someNumber = (from a in TableA.col1 group a by a.DateUTC.Value.ToLocalTime().Date into g where TableA.col2 = Emp select g).Count(); 以上方法很好。但是DateUTC开始累积空值,这破坏了查询。

我有以下linq到sql:

int someNumber = (from a in TableA.col1
                       group a by a.DateUTC.Value.ToLocalTime().Date into g
                       where TableA.col2 = Emp
                       select g).Count();
以上方法很好。但是DateUTC开始累积空值,这破坏了查询。我试过这个:

int someNumber = (from a in TableA.col1
                       group a by a.DateUTC.Value.ToLocalTime().Date into g
                       where TableA.col2 = Emp && TableA.DateUTC != null
                       select g).Count();

但是第二个查询没有过滤掉空值。我猜这是因为团队走在哪里之前。是否有某种方法可以使用原始查询来避免“除非”,因为DateUTC可能有空值?

解决方案将在分组之前进行筛选:

int someNumber = (from a in TableA.col1 
                   where a.DateUTC != null 
                   group a by a.DateUTC.Value.ToLocalTime().Date into g 
                   where TableA.col2 = Emp
                   select g).Count(); 

解决方案将在分组前进行筛选:

int someNumber = (from a in TableA.col1 
                   where a.DateUTC != null 
                   group a by a.DateUTC.Value.ToLocalTime().Date into g 
                   where TableA.col2 = Emp
                   select g).Count();