我有一个LINQ2SQL语句,我使用两个标准:
var query1 = from r in dt.Test
where r.ID == 92
&& r.Status = '"I"
select r.ID && r.Status = "I"
但它让我错误的是AND(&&)运算符无法使用string和bool。这是什么转变?
答案 0 :(得分:4)
尝试用=
==
个标志
var query1 = from r in dt.Test
where r.ID == 92
&& r.Status == "I"
select r.ID && r.Status == "I"
请记住,C#中的=
是赋值运算符,==
是相等运算符。作为经常在C#和VB.NET之间翻转的人,我经常会在这里不知所措!
答案 1 :(得分:1)
您有一个等号r.Status = '"I"
,应为r.Status == '"I"
答案 2 :(得分:1)
您的意思是==
代替=
;赋值表达式(与相等运算符相对)令人困惑;而不是返回bool,r.Status = "I"
的结果是字符串... "I"
var query1 = from r in dt.Test
where r.ID == 92 && r.Status == "I"
select r.ID;
(不太清楚你的select
的最后一部分是什么,所以我省略了它)
答案 3 :(得分:1)
=
用于分配,==
用于平等。select r.ID && r.Status == "I"
(即使有两个相等的标志)在任何情况下都无效。根据您要选择的内容,如果结果是符合搜索条件的行数,请考虑使用Count()
。
如果要选择这两个值,请使用POCO类或anonymous type:
var query1 = from r in dt.Test
where r.ID == 92 && r.Status == "I"
select new { ID = r.ID, Status = r.Status };
答案 4 :(得分:0)
var query1 = from r in dt.Test
where r.ID == 92 && r.Status == "I"
select r.ID && r.Status == "I";