C# 在一个LINQ查询中组合两个条件
我想知道是否有一种方法可以在一个LINQ查询中组合两个不同列上的两个条件 我有一个图书表->tbl_图书,它有三列 id-pk 受试者id-fk至tbl受试者 账簿摘要-账簿摘要详细信息 var book_id=不同的book_id列表 var subject_id=不同的subject_id列表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
//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();