【发布时间】:2018-04-13 13:43:47
【问题描述】:
我有表类 Logging
代码如下:
public partial class Logging
{
public string Imei { get; set; }
public DateTime CurDateTime { get; set; }
public Nullable<System.DateTime> GPSDateTime2 { get; set; }
public Nullable<decimal> Latitude2 { get; set; }
public Nullable<decimal> Longitude2 { get; set; }
public int Speed { get; set; }
public Nullable<int> Datatype { get; set; }
public int Id { get; set; }
}
我也有 ViewModel
public class HeatmapViewModel
{
public decimal? Latitude2 { get; set; }
public decimal? Longitude2 { get; set; }
public int FirstStartDifference { get; set; }
public int LastStartDifference { get; set; }
public int coeff = 2;
public int Difference;
}
我在存储库中有方法,我可以在其中进行所有计算
这里是代码
var allitems = ctx.Loggings.AsEnumerable().Select(
x => new Logging
{
Longitude2 = x.Longitude2,
Latitude2 = x.Latitude2,
CurDateTime = x.CurDateTime,
Datatype = x.Datatype
});
var filteredQuery = allitems.Where(x => x.Datatype == 1 || x.Datatype == 2).OrderByDescending(x => x.Id).ToList();
for (int i = 1; i < filteredQuery.Count; i++)
{
if (filteredQuery[i].Datatype == 2 && filteredQuery[i - 1].Datatype == 1)
{
TimeSpan differenceTicks = filteredQuery[i].CurDateTime - filteredQuery[i - 1].CurDateTime;
var differenceInMinutes = (int) differenceTicks.TotalMinutes;
}
}
items.Add(new HeatmapViewModel
{
Latitude2 = allitems.Longitude2,
Longitude2 = allitems.Longitude2,
Difference = differenceInMinutes
});
我对这段代码有问题:
items.Add(new HeatmapViewModel
{
Latitude2 = allitems.Longitude2,
Longitude2 = allitems.Longitude2,
Difference = differenceInMinutes
});
这是错误:
严重性代码描述项目文件行抑制状态 错误 CS1061“IEnumerable”不包含“Longitude2”的定义,并且找不到接受“IEnumerable”类型的第一个参数的扩展方法“Longitude2”(您是否缺少 using 指令或程序集引用?)热图 C:\ Users\nemes\source\repos\Heatmap\Heatmap\Repository\HeatmapRepository.cs 91 活动
严重性代码描述项目文件行抑制状态 错误 CS1061“IEnumerable”不包含“Longitude2”的定义,并且找不到接受“IEnumerable”类型的第一个参数的扩展方法“Longitude2”(您是否缺少 using 指令或程序集引用?)热图 C:\用户\nemes\source\repos\Heatmap\Heatmap\Repository\HeatmapRepository.cs 92 活动 严重性代码 描述 项目文件行抑制状态 错误 CS0103 当前上下文 Heatmap C:\Users\nemes\source\repos\Heatmap\Heatmap\Repository\HeatmapRepository.cs 93 Active
中不存在名称“differenceInMinutes”
我该如何解决?
【问题讨论】:
-
为什么你有第一个查询 - 用
var allitems = ctx.Loggings;替换它并且你需要在for循环中添加HeatmapViewModel的实例(假设items是 @987654329 @) -
好的。关于第一个查询理解,我的错。但是我需要如何添加
HeatmapViewModel的实例呢? @StephenMuecke -
在您的
if块内 -items.Add(new HeatmapViewModel{ Latitude2 = filteredQuery[i].Latitude2, ...., Difference = differenceInMinutes}); -
您确实意识到这只会为每个第二个项目生成一个
HeatmapViewModel,因为您的if块(假设查询中的每个项目的Datatype值交替)。很难理解你在这里真正想做什么
标签: c# asp.net asp.net-mvc asp.net-mvc-4