C# LINQ中的where子句到实体数据绑定
我试图向现有的LINQ数据绑定添加where子句,但我所做的一切都不起作用。我要添加的where子句检查refAuthSigner表中的列IsActive==1 以下是我现有的查询:C# LINQ中的where子句到实体数据绑定,c#,linq,C#,Linq,我试图向现有的LINQ数据绑定添加where子句,但我所做的一切都不起作用。我要添加的where子句检查refAuthSigner表中的列IsActive==1 以下是我现有的查询: // populates Authorized Signer dropdownlist using (dbPSREntities10 myEntities = new dbPSREntities10()) { var allSigners = from ref
// populates Authorized Signer dropdownlist
using (dbPSREntities10 myEntities = new dbPSREntities10())
{
var allSigners = from refAuthSigner in myEntities.refAuthSigners <--- where clause somewhere around here??
select new
{
refAuthSignerID = refAuthSigner.refAuthSignerID,
refAuthSignerName = refAuthSigner.refAuthSignerFirst + " " + refAuthSigner.refAuthSignerLast
};
ddlAuthSigners.DataSource = allSigners;
ddlAuthSigners.DataValueField = "refAuthSignerID";
ddlAuthSigners.DataTextField = "refAuthSignerName";
ddlAuthSigners.DataBind();
}
这段代码不正确,只是想知道如何将where子句合并到代码中。谢谢 试试这个:
var allSigners = from refAuthSigner in myEntities.refAuthSigners
where refAuthSigner.IsActive
select new
{
refAuthSignerID = refAuthSigner.refAuthSignerID,
refAuthSignerName = refAuthSigner.refAuthSignerFirst + " " + refAuthSigner.refAuthSignerLast
};
只需使用:
where refAuthSigner.IsActive
因为它是一个布尔值,所以不能将其与整数进行比较。它是true
或false
,而不是1
或0
。(有些语言将两者混为一谈,C#不是其中之一。)
无需将
IsActive
与任何东西进行比较其中
需要一个布尔值,IsActive
是一个布尔值。你已经有了你所需要的东西。你可以说:
var allsigners = refAuthSigner.Where(x => x.refAuthSigner.IsActive)
“==”的
运算符不能应用于“bool”和“int”类型的操作数。IsActive是SqlServer中的类型位
如果这是您遇到的错误,请尝试使用
Any
而不是Where
,因为它返回bool,当您添加Where
子句时,您会遇到什么问题?“==”运算符不能应用于“bool”和“int”类型的操作数。IsActive是SQLSERVER中的bit类型。请编辑问题以包含该信息。这样他就不会过滤结果,这是他想要的,他只会得到一个布尔值,这不是他想要的。
where refAuthSigner.IsActive
var allsigners = refAuthSigner.Where(x => x.refAuthSigner.IsActive)