簡體   English   中英

linq 中關於 null 的 WHERE 子句

[英]WHERE clause on null in linq

我有兩個表,為簡化起見,如下所示:

文件

FileID | UserID
 23    |   342
 53    |   352

數據

UserID |  DateCreated
  352  |    7/22/2014
  245  |    7/25/2014  
  589  |    7/28/2014

我期待返回表示最新的一個可空INT UserID從表TheData ,這不是在表中TheFiles 例如,對於此示例數據,返回值將是 589,因為它是 TheData 中的最新條目,並且不在表 TheFiles 中。

我在沒有數據的情況where遇到了一些麻煩。 這就是我所擁有的:

var TheNullableInt = (from d in MyDC.TheData
                      where d.UserID doesn't exist in MyDC.TheFiles
                      orderby d.DateCreated descending
                      select d.UserID).FirstOrDefault();

我正在使用 linq-to-SQL。 我該如何做 where 子句?

var lastest = MyDC.TheData.Where(d => !MyDC.TheFiles.Any(f => f.UserID == d.UserID))
                          .OrderByDescending()
                          .FirstOrDefault();

或者如果你真的想使用 LINQ

var latest = (from d in MyDC.TheData
              where !MyDC.TheFiles.Any(f => f.UserID == d.UserID)
              orderby d.DateCreated descending
              select d
             ).FirstOrDefault();
from d in MyDC.TheData
     where  !MyDC.TheFiles.Any(tf=>tf.UserID == d.UserID)

join

from d in MyDC.TheData
join tf in MyDC.TheFiles on tf.UserID equals tf.UserID into j
from x in j.DefaultIfEmpty()
where x == null
select.....

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM