我的ASP.NET MVC应用程序中有一点问题。 在我的类Repository.cs中,我调用了StoredProcedure,它给了我类似的东西:
###############################################################
| JOB | STATUS | DATE | START | END | DURATION |
###############################################################
| ABCD | ok | 05.05.2015 | 10:15:12 | 10:16:00 | 00:00:48 |
.
.
.
我的 Repository.cs 类代码看起来像那样(rdr是一个SqlDataReader):
while (rdr.Read())
{
var jobNameId = rdr.GetOrdinal("JOB");
var statusId = rdr.GetOrdinal("STATUS");
var appointmentId = rdr.GetOrdinal("DATE");
var startId = rdr.GetOrdinal("START");
var endId = rdr.GetOrdinal("END");
var durationId = rdr.GetOrdinal("DURATION");
result.Add(new Job()
{
JobName = rdr.GetString(jobNameId),
Status = (JobStatus)Enum.Parse(typeof(JobStatus), rdr.GetString(statusId)),
// rdr.GetDateTime() and rdr.GetTimeSpan() is throwing InvalidCastException
Appointment = rdr.GetDateTime(appointmentId),
Start = rdr.GetTimeSpan(startId),
End = rdr.GetTimeSpan(endId),
Duration = rdr.GetTimeSpan(durationId)
});
}
我的 Job.cs 类看起来像这样:
public class Job
{
public string JobName { get; set; }
public JobStatus Status { get; set; }
public DateTime Appointment { get; set; }
public TimeSpan Start { get; set; }
public TimeSpan End { get; set; }
public TimeSpan Duration { get; set; }
}
当我的读者(rdr)试图呼叫rdr.GetDateTime(appointmentId)
以及呼叫rdr.GetTimeSpan(startId|endId|durationId)
我知道我可以用Convert.ToDateTime(rdr.GetString(appointmentId))
来做,但我不想这样做,因为这对我没有意义。
你们有没有想法如何获得我的DateTime / TimeSpan,而没有明确地将其转换为DateTime / TimeSpan?