我是Linq的新手,我正在使用
搜索文章DBSearchDataContext db = new DBSearchDataContext();
object q = from b in db.Articles
where b.Tags.Contains(val) |
b.NewsTitle.Contains(val) |
b.EnglishContent.Contains(val)
select b;
我无法排除类别=视频或照片的结果
请帮我排除值为“视频”或“照片”的类别
答案 0 :(得分:1)
实际上我们需要有关您问题的更多信息。如果我们说,你有一个名为带有ID PK(int)列的类别的表。您需要搜索
1 - 视频
2 - 照片
DBSearchDataContext db = new DBSearchDataContext();
var q = (from b in db.Articles
where
b.CategoryId == 1 // This is returns Videos category
select b).ToList();
我无法写出确切的答案,但这会告诉你一个方法。
所以您的查询可以是;
var q = (from b in db.Articles
where
(b.Tags.Contains(val) ||
b.NewsTitle.Contains(val) ||
b.EnglishContent.Contains(val))
&&
b.CategoryId == 1
select b).ToList();
如果您提供有关如何找到类别(有关系或枚举)的更多信息,我可以改进我的答案。
答案 1 :(得分:1)
DBSearchDataContext db = new DBSearchDataContext();
object q = from b in db.Articles
where
(b.Tags.Contains(val) ||
b.NewsTitle.Contains(val) ||
b.EnglishContent.Contains(val)) &&
!( b.SomeCategoryList.Containts("videos") || b.SomeCategoryList.Contains("photos") )
select b;
答案 2 :(得分:1)
DBSearchDataContext db = new DBSearchDataContext();
object q = from b in db.Articles
where b.Tags.Contains(val) |
b.NewsTitle.Contains(val) |
b.EnglishContent.Contains(val)
&& ( !b.category.Contains(videos) && !b.category.Contains(Photographs))
select b;
也许是这样的......
答案 3 :(得分:0)
您应该将|
改为||
,这是正确的OR
条件。
要排除它,你需要一些谎言(基于数据库中类别的位置的假设):
DBSearchDataContext db = new DBSearchDataContext();
object q = from b in db.Articles
where (b.Tags.Contains(val) ||
b.NewsTitle.Contains(val) ||
b.EnglishContent.Contains(val)) &&
!(b.Category != "Videos" && b.Category != "Photos")
select b;