有人能解釋爲什麼這個異常在下面的LINQ查詢存在的了:例外:空值不能分配與類型System.Int32一個成員是一個非空的值類型
return (from c in dc.Classifications
where c.Id == classificationId
select new Classification()
{
Description = c.Description,
ParentId = Convert.ToInt16(c.ParentId),
}).Single<Classification>();
DC是datacontext,Classification是一個包含int屬性ParentId的類。 ParentId列是來自Sql Server數據庫的可空int。在ParentId字段在數據庫中爲空的情況下,該語句返回InvalidOperationException。
換句話說,爲什麼上面的查詢失敗並且 'int y = Convert.ToInt16(null);'
工作?
當數據庫中的字段爲空時,您希望在ParentID中使用什麼值? – Kipotlov 2011-03-28 15:12:05
int x = Convert.ToInt16(matches.Single()。ParentId);當這個ParentId在db中爲空時,這不會拋出任何異常嗎?......奇怪! – 2011-03-28 15:21:04
如果數據庫字段爲空,我希望ParentId爲零。 – Will 2011-03-28 19:15:33