不能应用于'bool'和'char'类型的操作数 - linq错误 [英] cannot be applied to operands of type 'bool' and 'char' - linq error
本文介绍了不能应用于'bool'和'char'类型的操作数 - linq错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我目前正在努力获取bool类型sdata_ALL参数,在linq where条件。 data_ALL字段可以具有值0或1.我使用下面的sql查询将其转换为linq查询,但是我对bool类型参数有困难。
I am currently struggling with the getting the bool type "sdata_ALL" parameter, in a linq where condition. the "data_ALL" field can have values 0 or 1. I am using the sql query below to convert it into linq query, but I having difficulty with the bool type parameter.
public bool subs(string username, string password)
{
//define the query : query will be an IQueryable
var query = from s in db.Subscriptions
join u in db.UserDetails on s.sUID equals u.uID
where s.BS_ExpiryDate >= DateTime.Now &&
s.sPID.Value == 163 &&
s.data_All.Value == 1 &&
u.uUsername == username &&
u.uPassword == password
select u; //
// "execute" the query
return query.FirstOrDefault() != null; // if there is a result it will return true
}
对我可能遗失或做错的任何见解?
非常感谢。
Any insight to what I may be missing or doing wrong?
Many thanks.
推荐答案
好的,
FirstOrDefault()返回序列的第一个元素,如果序列不包含元素,则返回默认值。
所以,如果我没有弄错,那么你得到string
或者可能是char
值,方法是返回bool
值。相反,您可以做的是更改方法的返回类型。
-KR
OKay,
FirstOrDefault() returns the first element of a sequence, or a default value if the sequence contains no elements.
So if I'm not mistaken then you're gettingstring
or maybe achar
value, and the method is returnbool
value. Instead, what you can do is change the return type of your method.
-KR
我们可以通过在布尔类型参数中应用true而不是1来获得结果
示例:
(来自objeApp_SchemaEntities.AspNetUsers中的id,其中id.IsAdmissionAccount == true选择id.Id).FirstOrDefault();
We can get result by applying true instead of 1 in the Boolean type parameter
Example:
(from id in objeApp_SchemaEntities.AspNetUsers where id.IsAdmissionAccount == true select id.Id).FirstOrDefault();
我设法弄清楚对于布尔类型,它应该是true / false返回。
I manage to figure out that for the boolean type, it should be true/false return.
var query = from s in db.Subscriptions
join u in db.UserDetails on s.sUID equals u.uID
where s.BS_ExpiryDate >= DateTime.Now &&
s.sPID.Value == 163 &&
s.data_All.Value == true &&
u.uUsername == username &&
u.uPassword == password
select u; //
这篇关于不能应用于'bool'和'char'类型的操作数 - linq错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文