Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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#_Linq - Fatal编程技术网

C# 在一个LINQ查询中组合两个条件

C# 在一个LINQ查询中组合两个条件,c#,linq,C#,Linq,我想知道是否有一种方法可以在一个LINQ查询中组合两个不同列上的两个条件 我有一个图书表->tbl_图书,它有三列 id-pk 受试者id-fk至tbl受试者 账簿摘要-账簿摘要详细信息 var book_id=不同的book_id列表 var subject_id=不同的subject_id列表 //This will return books for the provided book_ids var books1 = db.tbl_books.where(b=> book_ids.c

我想知道是否有一种方法可以在一个LINQ查询中组合两个不同列上的两个条件

我有一个图书表->tbl_图书,它有三列

id-pk

受试者id-fk至tbl受试者

账簿摘要-账簿摘要详细信息

var book_id=不同的book_id列表

var subject_id=不同的subject_id列表

//This will return books for the provided book_ids
var books1 = db.tbl_books.where(b=> book_ids.contains(b.id)).ToList();

//This will return books for the provided subject_ids
var books2 = db.tbl_books.where(b=>subject_ids.contains(b.subject_id)).ToList();
有没有办法将两个查询合并为一个查询

我知道我能做到:

db.tbl_books.where(b=> book_ids.contains(b.id)).Union(db.tbl_books.where(b=>subject_ids.contains(b.subject_id))).ToList();
附言。 我不想一开始就从tbl_书籍中获取所有行


你能提出解决这个问题的办法吗。谢谢。

您可以使用
|
代替
联合

db.tbl_books
  .Where(b => book_ids.contains(b.id) || 
              subject_ids.contains(b.subject_id)))
  .ToList();
试试这个:

var selectedBooks = db.tbl_books.where(b=> book_ids.contains(b.id) || subject_ids.contains(b.subject_id)).ToList();
试试这个:

 var query = (from a in db.tbl_books 
 where a.book_ids == b_id && a.subject_ids == sub_id 
 select new{
      a.[column_name],
      a.[column_name],
      a.[column_name],
      //columns you want to retrieve
 }).ToList();


取决于你想要完成什么。希望对您有所帮助。

欢迎使用SO。请参观
 var query = (from a in db.tbl_books 
 where a.book_ids == b_id || a.subject_ids == sub_id 
 select new{
      a.[column_name],
      a.[column_name],
      a.[column_name],
      //columns you want to retrieve
 }).ToList();