我正在尝试使用实体框架在linq查询中向function getAppSettings(mobilesvc, appSettings){
var appSettingsValue;
mobilesvc.invokeApi(appSettings, {
method: 'GET'
}).done(function (results) {
var jsonResponse = JSON.parse(results.responseText);
appSettingsValue = jsonResponse;
}, function (error) {
});
return appSettingsValue;
}
添加TimeSpan
。我有以下代码:
修改
DateTime
是TimeSlots
ICollection<TimeSlot>
具有TimeSlot
和DateTime Start
TimeSpan Duration
它编译得很好,但不会在var linq = from s in schedulesBase
join c in channelBase on s.ChannelId equals c.ChannelId
select new
{
...
TimeSlots = s.TimeSlots,
...
};
var timeslots = linq.SelectMany(t => t.TimeSlots);
return from s in timeslots
select new Resources.Event
{
...
end = DbFunctions.AddSeconds((DateTime?)s.Start, (Int32?)s.Duration.Seconds)
...
};
到s.Duration.Seconds
之间添加任何时间。
由于以下代码可以正常工作
end
并按预期行事我必须对从end = DbFunctions.AddSeconds((DateTime?)s.Start, 500)
到秒的转换做错。
在第一种情况下我做错了什么?
答案 0 :(得分:5)
我怀疑问题在于您使用Seconds
代替TotalSeconds
。 Seconds
属性仅提供[-59, 59]
范围内的值 - 例如,5分30秒将返回30,而不是330。
尝试:
end = DbFunctions.AddSeconds((DateTime?)s.Start, (Int32?)s.Duration.TotalSeconds)