Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用LINQ进行布尔查询_C#_Database_Linq_Asp.net Mvc 4 - Fatal编程技术网

C# 如何使用LINQ进行布尔查询

C# 如何使用LINQ进行布尔查询,c#,database,linq,asp.net-mvc-4,C#,Database,Linq,Asp.net Mvc 4,我有一个表,其中包含自行车(山地自行车、旅游自行车、公路自行车等)的子类别,我创建了一个列isSelected,数据类型为Boolean。当被选中时,我想在数据库中设置=true每个子类别都与之匹配,它将显示在主页上,反之亦然 IQueryable<ProductSubcategory> list = null; if (Id == null) { list = BikesDB.ProductSubcategories; } else { int id = Id.V

我有一个表,其中包含自行车(山地自行车、旅游自行车、公路自行车等)的
子类别
,我创建了一个列
isSelected
,数据类型为
Boolean
。当
被选中时,我想在数据库中设置
=
true
每个
子类别
都与之匹配,它将显示在主页上,反之亦然

IQueryable<ProductSubcategory> list = null;

if (Id == null)
{
    list = BikesDB.ProductSubcategories;
}
else
{
    int id = Id.Value;
    list = BikesDB.ProductSubcategories.Where(m => m.ProductSubcategoryID == id
                                                   && m.NameofBike == Name
                                                   && m.isSelected == true);
}

var bikes = list.AsEnumerable().Select(
             p => new Bike { Id = p.ProductSubcategoryID, Name = p.NameofBike });

var viewModel = new CategoriesIndexViewModel
                {
                    NumberOfModel = bikes.Count(),
                    NameofBike = bikes.Select(b=>b.Name).ToList(),
                    Bikes = bikes.ToList()
                };

return this.View(viewModel);
IQueryable列表=null;
if(Id==null)
{
列表=BikesDB.ProductSubcategories;
}
其他的
{
int id=id.值;
list=BikesDB.ProductSubcategories.Where(m=>m.productSubcategorid==id
&&m.NameofBike==名称
&&m.isSelected==真);
}
var bikes=list.AsEnumerable()。选择(
p=>新自行车{Id=p.ProductSubcategory Id,Name=p.NameofBike});
var viewModel=新类别索引模型
{
NumberOfModel=bikes.Count(),
NameofBike=bikes.Select(b=>b.Name).ToList(),
Bikes=Bikes.ToList()
};
返回此.View(viewModel);

您确定
isSelected
已实际设置吗?我觉得你的linq表情看起来不错。它应该只正确地选择
isSelected==true
的项目

在查询完成之前,我会在调试器中查看您的列表,并确保它具有您认为的内容


或者您正在运行第一个分支:
if(Id==null)
并且您的列表没有被
isSelected
条件过滤。

您遇到了什么问题?例如,当我单击
Mountain Bikes
false
时,它仍然显示在Web应用程序的主页上。当我在数据库中设置山地自行车时,我怎么能消失呢?你的意思是:
m.isSelected==true
@johnb003正是这个意思!您要创建。它仍然显示全部项目,而不仅仅是选择
isSelected==true的项目。我不知道上面的代码哪里错了!您是否在数据库中更改
isSelected
的值?(这甚至不应该做,这是可怕的设计)不,我不会改变它@Jeroenvanevel谢谢你的回答!我修好了。