Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.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# 计算不在';实体框架中的t null(分钟间隔)_C#_Asp.net Mvc_Entity Framework - Fatal编程技术网

C# 计算不在';实体框架中的t null(分钟间隔)

C# 计算不在';实体框架中的t null(分钟间隔),c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,我需要使用实体框架计算每分钟不为null的行数。 一分钟内可以有多行变量hodnota1=1(int) 结果是6 我需要计算Hodnota1中有一个或多个1变量的分钟数 public float RunPercent(DateTime start, DateTime end) { var countMinutes = db.ESP_LOG.Where(t => t.Time > start && t.Time < end).GroupBy(xxx).C

我需要使用实体框架计算每分钟不为null的行数。 一分钟内可以有多行变量hodnota1=1(int)

结果是6

我需要计算Hodnota1中有一个或多个1变量的分钟数

public float RunPercent(DateTime start, DateTime end)
{
    var countMinutes = db.ESP_LOG.Where(t => t.Time > start && t.Time < end).GroupBy(xxx).Count();
    return countMinutes;
}
公共浮点运行百分比(日期时间开始,日期时间结束)
{
var countMinutes=db.ESP_LOG.Where(t=>t.Time>start&t.Time

谢谢你的帮助。

我不确定你到底需要什么逻辑。但是在SQL中,您可以使用DATEDIFF函数将时间范围划分为多个间隔。比如:

var logEntriesByMin = db.ESP_LOG.Where(t => t.Time > start && t.Time < end)
                .GroupBy(t => EF.Functions.DateDiffMinute(new DateTime(1970, 01, 01), t.Time))
                .Select(g => new
                {
                    WindowStart = new DateTime(1970, 01, 01).AddMinutes(g.Key),
                    WindowMinTime = g.Min(t => t.Time),
                    TotalRows = g.Count(),
                    NonNullRows = g.Sum(t => t.SomeProp.HasValue?1:0),
                    NullPercentage = (g.Count() - g.Sum(t => t.SomeProp.HasValue ? 1 : 0)) / g.Count()
                });
var logEntriesByMin=db.ESP\u LOG.Where(t=>t.Time>start&t.TimeEF.Functions.DateDiffMinute(新的DateTime(1970,01,01),t.Time))
.选择(g=>new
{
WindowsStart=新日期时间(1970,01,01)。添加分钟数(g.Key),
WindowMinTime=g.Min(t=>t.Time),
TotalRows=g.Count(),
NonNullRows=g.Sum(t=>t.SomeProp.HasValue?1:0),
NullPercentage=(g.Count()-g.Sum(t=>t.SomeProp.HasValue?1:0))/g.Count()
});

将每分钟返回一行,对于每分钟有任何行,以及该分钟行的统计信息。

您需要在此处详细说明,以便对此负责。什么是“1”变量?什么确切地说是null,可能是实体的特定属性?行本身不能为空-这就是标题所声明的。既然你没有进行百分比计算,为什么你的结果被称为“百分比”?在这方面,一个新的方案将大有帮助。实体类定义、一个示例数据集和一个预期结果集将清楚地表明您要查找的是什么
不是有效的语法,但这可能只是问题中的输入错误,而不是实际代码中的输入错误。