Linq to Sql проблема с преобразованием обнуляемого двоичного формата - PullRequest
1 голос
/ 22 февраля 2011

Я пытаюсь получить изображение из БД (SQL Server 2008), которое сохраняется в виде двоичного значения, допускающего значение NULL, используя запрос linq to sql.Мой запрос:

var news = from topic in db.PublicNews
orderby topic.PostedDate descending                        
select new PublicNewsDto()
{
     Id = topic.Id,
     PostedDate = topic.PostedDate,
     Summary = topic.Summary,
     Text = topic.Text,
     NewsImg = topic.NewsImg.ToArray()
};

У меня есть NullReferenceExeption.Если db не содержит нулевое значение, этот код работает правильно.

Не могли бы вы мне помочь?

Спасибо!

1 Ответ

0 голосов
/ 22 февраля 2011

Вы должны сначала проверить, имеет ли topic.NewsImg значение перед его назначением. Если у него нет значения, передайте пустой массив, например:

NewsImg = topic.NewsImg.HasValue ? topic.NewsImg.Value.ToArray() : new byte[]

EDIT:

Чистый способ сделать это следующим образом:

var news = from topic in db.PublicNews
            select new PublicNewsDto()
            {
                Id = topic.Id,
                PostedDate = topic.PostedDate,
                Summary = topic.Summary,
                Text = topic.Text,
                NewsImg = (topic.NewsImg.HasValue ? topic.NewsImg.Value : new byte[])
            };

            var orderedNews = news.OrderByDescending(e => e.PostedDate);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...