可空列上的LINQ联接表
|
如何在可空列上联接表?
我有以下LINQ查询,
RMA.fiCharge
可以为NULL:
Dim query = From charge In Services.dsERP.ERP_Charge _
Join rma In Services.dsRMA.RMA _
On charge.idCharge Equals rma.fiCharge _
Where rma.IMEI = imei
Select charge.idCharge
我在query.ToArray()
中得到一个“从类型\'DBNull \'到类型\'Integer \'无效的转换\”:
Dim filter = _
String.Format(Services.dsERP.ERP_Charge.idChargeColumn.ColumnName & \" IN({0})\", String.Join(\",\", query.ToArray))
所以我可以在查询中附加一个“ 4”。但是如何在LINQ中做到这一点,或者还有另一种选择?
先感谢您。
解:
问题在于,如果您查询整数列上的任何NULL值,则DataSet不支持Nullable-Types,但是会生成InvalidCastException(感谢Martinho)。
来自dahlbyk的修改后的LINQ查询仅需少量修改即可工作。 DataSet为AllowDbNull = True的每个列生成布尔属性,在这种情况下为IsfiChargeNull
。
Dim query = From charge In Services.dsERP.ERP_Charge _
Join rma In (From rma In Services.dsRMA.RMA _
Where Not rma.IsfiChargeNull
Select rma)
On charge.idCharge Equals rma.fiCharge _
Where rma.IMEI = imei
Select charge.idCharge
没有找到相关结果
已邀请:
2 个回复
稀瓣囊
如果这样不起作用,您可以尝试如下操作:
秃拳割