У меня есть родительская таблица темы и таблица Post, привязанная к таблице Topic.ASP.Net MVC Linq to Sql как обрабатывать нулевое время datetime
То, что я пытаюсь сделать в запросе Linq это вернуть последнюю дату поста, из связанного сообщения таблицы, однако, если нет сообщений, то запрос ниже не может, так как DateTime не обнуляемый:
The cast to value type 'DateTime' failed because the materialized value is null. Either the result type's generic parameter or the query must use a nullable type.
Этот запрос:
var topic = db.Topics.Include(x => x.Posts).Include(x => x.Forum).Where(x => x.ForumId==id)
.Select(t => new TopicViewModel
{
TopicId =t.TopicId,
ForumId=t.ForumId,
Title=t.Title,
DateOfTopic=t.DateOfPost,
Replies=t.Posts.Count()-1,
Author=t.Author,
Views = t.Views,
LastPost = t.Posts.OrderByDescending(x => x.DateOfPost).FirstOrDefault().Author,
LastPostDate = t.Posts.OrderByDescending(x => x.DateOfPost).FirstOrDefault().DateOfPost
}).OrderByDescending(x=> x.DateOfTopic).ToList();
Мои ViewModel является:
public class TopicViewModel
{
public int TopicId { get; set; }
[Required]
public string Title { get; set; }
public string Author { get; set; }
public DateTime DateOfTopic { get; set; }
public int Replies { get; set; }
public int Views { get; set; }
public string LastPost { get; set; }
public DateTime LastPostDate { get; set; }
public int ForumId { get; set; }
}
Есть в любом случае изменить эту строку:
LastPostDate = t.Posts.OrderByDescending(x => x.DateOfPost).FirstOrDefault().DateOfPost
... так что это не ошибка, если DateOfPost равна нулю?
Использование обнуляемым типа: '' DateTime – MarcinJuraszek