我想我有 2 个解决方案给你。一种用于 INT 或 SMALLINT 数据类型,另一种用于数据库中的 BIT 数据类型。
如果您的 IsBlocked Column 在 SQL Server 中是 BIT TYPE,那么您可以使用下面给出的代码。
//This Class Represent as your Table Schema
public class PersonTableOne
{
public int PersonID { get; set; }
public string Name { get; set; }
public bool? IsBlocked { get; set; }
}
void TestMethod1()
{
List<PersonTableOne> personItems = new List<PersonTableOne>();
personItems.Add(new PersonTableOne() { PersonID = 1, Name= "A" ,IsBlocked=null});
personItems.Add(new PersonTableOne() { PersonID = 2, Name = "B", IsBlocked = true });
personItems.Add(new PersonTableOne() { PersonID = 2, Name = "C", IsBlocked = false });
var answare = from m in personItems
where (m.IsBlocked ?? false) == false
select m;
}
注意: Class 是表的表示,List 是你的表行。
如果您的 IsBlocked Column 在 SQL Server 中是 INT/SMALLINT 类型,那么您可以使用下面给出的代码。
public class PersonTableTwo
{
public int PersonID { get; set; }
public string Name { get; set; }
public int? IsBlocked { get; set; }
}
void TestMethod2()
{
List<PersonTableTwo> personItems = new List<PersonTableTwo>();
personItems.Add(new PersonTableTwo() { PersonID = 1, Name = "A", IsBlocked = null });
personItems.Add(new PersonTableTwo() { PersonID = 2, Name = "B", IsBlocked = 1 });
personItems.Add(new PersonTableTwo() { PersonID = 2, Name = "C", IsBlocked = 0 });
var answare = from m in personItems
where (m.IsBlocked ?? 0) == 0
select m;
}