我正在尝试从db(SQL server 2008)获取图像,这些图像使用linq保存为二进制可空值到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不包含null值,则代码可以正常工作。
你能帮我吗?
谢谢!
答案 0 :(得分:0)
您必须先测试topic.NewsImg在分配之前是否有值。如果它没有值,则传入一个空数组,如下所示:
NewsImg = topic.NewsImg.HasValue ? topic.NewsImg.Value.ToArray() : new byte[]
编辑:
干净的方法如下:
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);