Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.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#_Asp.net Mvc_Linq_Razor - Fatal编程技术网

C# 返回行数的Linq语句

C# 返回行数的Linq语句,c#,asp.net-mvc,linq,razor,C#,Asp.net Mvc,Linq,Razor,我使用重定向到操作将评估模型传递到结果操作。在结果操作控制器中,我想 执行linq语句以使用存储库检索行数以及发布的任何值 number of rows = Select * from table or model where SmokesInHouse = SmokesInHouse And SmokesInCar = SmokesInCar And

我使用重定向到操作将评估模型传递到结果操作。在结果操作控制器中,我想 执行linq语句以使用存储库检索行数以及发布的任何值

number of rows = Select * 
                 from table or model
                 where SmokesInHouse = SmokesInHouse And
                       SmokesInCar = SmokesInCar And
                       SmokesAtWork = SmokesAtWork'

您需要更新
结果
操作以接受
评估
模型,即

[HttpGet]
public ActionResult Results(AssessmentModel assessment)
{
    int rows = myTable.Where(x => x.SmokesInHouse == assessment.SmokesInHouse &&
                                  x.SmokesInCar == assessment.SmokesInCar &&
                                  x.SmokesAtWork == assessment.SmokesInWork).Count();
    return View(rows);
}

您需要更新
结果
操作以接受
评估
模型,即

[HttpGet]
public ActionResult Results(AssessmentModel assessment)
{
    int rows = myTable.Where(x => x.SmokesInHouse == assessment.SmokesInHouse &&
                                  x.SmokesInCar == assessment.SmokesInCar &&
                                  x.SmokesAtWork == assessment.SmokesInWork).Count();
    return View(rows);
}

请尝试以下操作以获取您模型中的吸烟者总数:

int totalSmokers = model.Where(x => x.SmokesInHouse && x.SmokesInCar && x.SmokesAtWork).Count();

如果从数据库表中进行查询,您将使用相同的where子句。

尝试以下操作以获取模型中的吸烟者总数:

int totalSmokers = model.Where(x => x.SmokesInHouse && x.SmokesInCar && x.SmokesAtWork).Count();

若从数据库表进行查询,您将使用相同的where子句。

有一个重载,它接受一个谓词。有了它,查询可以简化为:

int totalSmokers = xs.Count(x =>
    x.SmokesInHouse == a.SmokesInHouse &&
    x.SmokesInCar == a.SmokesInCar &&
    x.SmokesAtWork == a.SmokesAtWork);

我假设这是一个IQueryable,将在服务器上执行,它可能不会有什么区别。但若它是一个IEnumerable,那个么它可能会对大序列产生影响。

有一个重载,它接受一个谓词。有了它,查询可以简化为:

int totalSmokers = xs.Count(x =>
    x.SmokesInHouse == a.SmokesInHouse &&
    x.SmokesInCar == a.SmokesInCar &&
    x.SmokesAtWork == a.SmokesAtWork);

我假设这是一个IQueryable,将在服务器上执行,它可能不会有什么区别。但是如果它是一个IEnumerable,它可能会对大序列产生影响。

OP说条件是
不是
。OP说条件是
不是
X.Where(p)。Count()
相当于
X.Count(p)
X.Where(p)。Count()
相当于
X.Count(p)