C# 操作员'==';无法应用于类型为';system.timespan';和';system.datetime';

C# 操作员'==';无法应用于类型为';system.timespan';和';system.datetime';,c#,asp.net,C#,Asp.net,你能找出我如何比较这两种方法吗?我的意思是,当我将数据库小时数与模型小时数进行比较时,会出现以下错误: 运算符“==”不能应用于“system.timespan”类型的操作数 和“系统日期时间” 还有埃霍家 var isExist = db.CRoom_Tb.Any(x => x.Rooms == b.Rooms && x.Check_In == b.Check_In && x.Hours == b.Hours && x.EHours ==

你能找出我如何比较这两种方法吗?我的意思是,当我将数据库小时数与模型小时数进行比较时,会出现以下错误:

运算符“==”不能应用于“system.timespan”类型的操作数 和“系统日期时间”

还有埃霍家

var isExist = db.CRoom_Tb.Any(x => x.Rooms == b.Rooms && x.Check_In == b.Check_In && x.Hours == b.Hours && x.EHours == b.EHours);

我的模型:

[DataType(DataType.Time)]
[DisplayFormat(DataFormatString = "{0:t}", ApplyFormatInEditMode = true)]
public DateTime EHours { get; set; }
[DataType(DataType.Time)]
[DisplayFormat(DataFormatString = "{0:t}", ApplyFormatInEditMode = true)]
public DateTime Hours { get; set; }
我的数据库:

Hours time(7)
EHours time(7)

这个错误非常明确,在这里是描述性的。您正在将可为空的Timespan(Timespan?)与日期时间进行比较。在您发布的模型代码中,您可以清楚地看到它是一个DateTime对象

不过,这应该很容易在代码中解决,DateTime有一个.TimeOfDay函数,它将DateTime对象的时间部分作为TimeSpan返回

试试这个:

var isExist = db.CRoom_Tb.Any(x => x.Rooms == b.Rooms && 
                                   x.Check_In == b.Check_In &&
                                   x.Hours == b.Hours.TimeOfDay &&
                                   x.EHours == b.EHours.TimeOfDay);