我正在尝试编写LINQ 2 SQL查询,但我们的联接却离开了。但是执行时,我遇到了以下异常
无法将空值分配给类型为System.Byte的成员,该类型是非空值类型
我的LINQ 2 SQL查询在这里
Dim items = (From i In oRecelDB.IV00200s _
Group Join c In oRecelDB.MDS_CONTAINERs _
On c.CONTAINERBIN Equals i.BIN Into ic = Group From x In ic.DefaultIfEmpty() _
Group Join sop In oRecelDB.SOP10201s _
On i.SERLNMBR Equals sop.SERLTNUM And i.ITEMNMBR Equals sop.ITEMNMBR _
Into os = Group From y In os.DefaultIfEmpty() _
Group Join iv1 In oRecelDB.IV10002s _
On iv1.SERLTNUM Equals i.SERLNMBR And iv1.ITEMNMBR Equals i.ITEMNMBR _
Into iv2s = Group From z In iv2s.DefaultIfEmpty() _
Where i.SERLNMBR = "2323" _
Select Bin = i.BIN, i.ITEMNMBR, i.LOCNCODE, i.DATERECD, i.SERLNMBR, i.SERLNSLD _
, YPosted = y.POSTED).ToList()
Run Code Online (Sandbox Code Playgroud)
我知道y.POSTED内部的值即将为null可能是原因。我该如何处理?有什么想法吗 ?谢谢你
问题在于,由于左联接或子查询返回null,为该查询生成的SQL返回该列的null值。C#正在推断字节类型,因为表的列不可为空,但结果的列可为空。
通过执行此操作来解决此问题
YPosted = (byte?)y.POSTED
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2616 次 |
最近记录: |