我已经定义了以下模型
public class TodayOrder
{
public string ID_ORIG { get; set; }
public string PART_ID { get; set; }
public string PART_DEX { get; set; }
public double TimeSecs { get; set; }
}
现在我正在尝试使用以下 Linq 表达式填充列表:
var todaysOrders = DCC.vw_ORD_GP_volumes_lastSets
.Where(a => a.ID_ORIG == id_orig.ToUpper() &&
a.PART_ID == Part.ToUpper())
.Select(a =>
new TodayOrder{
ID_ORIG = a.ID_ORIG,
PART_ID = a.PART_ID,
PART_DEX = a.PART_DEX,
TimeSecs = a.ReqTime.GetValueOrDefault().TotalSeconds });
List<TodayOrder> lst = todaysOrders.ToList();
其中 ReqTime 的类型为TimeSpan?
。
问题是在运行时我收到一个错误Value has no literal in SQL: 00:00:00 - 看起来 TimeSpan 有问题。
Line 72: });
Line 73: ERROR> lst = todaysOrders.ToList();
Line 74:
[InvalidOperationException: Value has no literal in SQL: 00:00:00]
System.Data.Linq.SqlClient.Visitor.FormatValue(Object value) +584911
System.Data.Linq.SqlClient.Visitor.VisitValue(SqlValue value) +32
事实上,如果我注释掉设置属性 TimeSecs 的行,一切正常。
实例化 TodayOrder 类实例的正确方法是什么?