我在DateTime
之间有区别我在模型中计算
public partial class Park
{
public int parkId { get; set; }
public decimal Longitude { get; set; }
public decimal Latitude { get; set; }
public Nullable<System.DateTime> TimeStart { get; set; }
public Nullable<System.DateTime> TimeEnd { get; set; }
[NotMapped]
public TimeSpan? Difference { get { return TimeEnd - TimeStart; } }
}
在此之后我将其称为后端
var items = ctx.Parks.AsEnumerable().Select(
x => new {
lng = x.Longitude,
lat = x.Latitude,
difference = x.Difference
}).ToList();
但我得到了这个{ lng = 50.4558539000, lat = 30.5148783000, difference = {00:05:00} }
如果我使用TotalMinutes
,请使用此
严重级代码描述项目文件行抑制状态 错误CS1061&#39; TimeSpan?&#39;不包含&#39; TotalMinutes&#39;的定义没有扩展方法&#39; TotalMinutes&#39;接受类型&#39; TimeSpan的第一个参数?&#39;可以找到(你错过了使用指令或程序集引用吗?)GoogleMapsAsp_Net C:\ Users \ nemes \ source \ repos \ GoogleMapsAsp_Net \ GoogleMapsAsp_Net \ Controllers \ HomeController.cs 28 Active
但我需要int
中的分钟差异,我该怎么做?
答案 0 :(得分:1)
基本上你可以这样做:
difference = (int?)(x.Difference?.TotalMinutes)
在这种情况下,你的答案将是一个可以为空的int(int?
),因此它将支持差异为null的可能性(在这种情况下为null)。
或者,如果您需要在这种情况下使用默认值,请说-1
,请执行以下操作:
difference = (int)(x.Difference?.TotalMinutes ?? -1)
进一步阅读:
答案 1 :(得分:-3)
您可以使用TimeSpan
的{{3}} / TotalSeconds / etc属性。
var items = ctx.Parks.AsEnumerable().Select(
x => new {
lng = x.Longitude,
lat = x.Latitude,
difference = x.Difference.TotalSeconds //Just add .TotalSeconds
}).ToList();
请注意,您必须将TimeSpan?
转换为TimeSpan