Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# LINQ联接如何仅选择第一条记录?_C#_Entity Framework_Linq_Linq To Entities - Fatal编程技术网

C# LINQ联接如何仅选择第一条记录?

C# LINQ联接如何仅选择第一条记录?,c#,entity-framework,linq,linq-to-entities,C#,Entity Framework,Linq,Linq To Entities,我只想在下面的联接查询中从“CustomerSubOwners”表中选择第一条记录,并想知道在LINQ中实现这一点的最佳方法是什么 var result= (from t1 in db.Cases from t2 in db.CustomerSubOwners .Where(o => t1.CustomerId == o.CustomerId && o.Expiry >= DateTime.

我只想在下面的联接查询中从“
CustomerSubOwners
”表中选择第一条记录,并想知道在LINQ中实现这一点的最佳方法是什么

var result= (from t1 in db.Cases
             from t2 in db.CustomerSubOwners
                          .Where(o => t1.CustomerId == o.CustomerId && o.Expiry >= DateTime.Now)
                          .DefaultIfEmpty()
             select t1);

我认为您正在寻找这样的方法:

var result= (from t1 in db.Cases
             from t2 in db.CustomerSubOwners.Where(o => t1.CustomerId == o.CustomerId && o.Expiry >= DateTime.Now)
                                            .Take(1)
                                            .DefaultIfEmpty()
             select t1); 

我是。完美的我不知道为什么我没有想到这一点:-)谢谢。