【发布时间】:2017-10-30 21:31:24
【问题描述】:
我有与 db 表相关的 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:Logging
{
public TimeSpan? FirstStartDifference
{
get
{
if (CurDateTime != null)
{
var midnight = new DateTime(CurDateTime.Year, CurDateTime.Month, CurDateTime.Day, 00, 00, 00);
var difference = CurDateTime - midnight;
return difference;
}
return null;
}
}
public TimeSpan? LastStartDifference
{
get
{
if (CurDateTime != null)
{
var midnight = new DateTime(CurDateTime.Year, CurDateTime.Month, CurDateTime.Day, 23, 59, 00);
var difference = midnight - CurDateTime;
return difference;
}
return null;
}
}
public int coeff = 2;
public int Difference;
}
在后端我有这个方法
List<HeatmapViewModel> items = new List<HeatmapViewModel>();
var firstitem = ctx.Loggings.Where(x => x.Datatype == 2).AsEnumerable().Select(
x => new HeatmapViewModel
{
Longitude2 = x.Longitude2,
Latitude2 = x.Latitude2,
Difference = (int)(x.FirstStartDifference?.TotalMinutes ?? -1) * x.coeff
}).FirstOrDefault();
var lastItem = ctx.Loggings.Where(x => x.Datatype == 2).AsEnumerable().Select(
x => new HeatmapViewModel
{
Longitude2 = x.Longitude2,
Latitude2 = x.Latitude2,
Difference = (int)(x.LastStartDifference?.TotalMinutes ?? -1) * x.coeff
}).LastOrDefault();
但是在这一行Difference = (int)(x.FirstStartDifference?.TotalMinutes ?? -1) * x.coeff,我有错误
严重性代码描述项目文件行抑制状态 错误 CS1061“Logging”不包含“FirstStartDifference”的定义,并且找不到接受“Logging”类型的第一个参数的扩展方法“FirstStartDifference”(您是否缺少 using 指令或程序集引用?) Heatmap C:\ Users\nemes\source\repos\Heatmap\Heatmap\Controllers\HomeController.cs 28 活动
我如何使用来自 VIewModel 的属性
【问题讨论】:
-
假设 Loggings 是 Logging 类型实例的集合,那么您尝试在每个日志记录实例上使用属性 FirstStartDifference,但该属性不存在。
-
您似乎正在从数据上下文中获取
Logging记录,而第一个Logging类没有该属性。你的意思是让你的第二个Logging类成为partial class以扩展第一个类吗?
标签: c# asp.net asp.net-mvc