作为列表类返回的LINQ外连接显示空值错误 [英] RETURNED LINQ OUTER JOIN AS A LIST CLASS SHOWS AN ERROR OF NULL VALUE

查看:141
本文介绍了作为列表类返回的LINQ外连接显示空值错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

作为列表类返回的LINQ外连接显示为空值错误.
当我们尝试分配返回的查询列表时,将出现NULL值错误.
我需要帮助,以正确的方式知道如何将空值

RETURNED LINQ OUTER JOIN AS A LIST CLASS SHOWS AN ERROR OF NULL VALUE.
WHEN WE TRY TO ASSIGN THE RETURNED QUERY LIST, THE NULL VALUE ERROR COMES.
I NEED A HELP TO KNOW HOW TO CAST THE NULL VALUE IN A PROPER WAY

public class cJAB_MT_SHOP_REGN_LQ
    {

       string _BOB_UNIQUEID;
       long _BOB_LOCATIONID;
       long _NBRANCH_SL;
       long _NREGION_SL;
       string _BOB_DESCRIPTION;
       long _NCM_SL;
       string _CNAME;
       
       public cJAB_MT_SHOP_REGN_LQ(string vBOB_UQ_ID,long vBOB_LOC_ID,long vNBRANCH,long vNRGION,string vBOB_DESCRTN,long vNCM_SL,string vCNAME)
       {
           this._BOB_UNIQUEID = vBOB_UQ_ID;
           this._BOB_LOCATIONID = vBOB_LOC_ID;
           this._NBRANCH_SL = vNBRANCH;
           this._NREGION_SL = vNRGION;
           this._BOB_DESCRIPTION = vBOB_DESCRTN;
           this._NCM_SL = vNCM_SL;
           this._CNAME = vCNAME;
       }
       public cJAB_MT_SHOP_REGN_LQ()
       {
       }
       public string BOB_UNIQUEID
       {
           get { return _BOB_UNIQUEID; }
           set {
               
                this._BOB_UNIQUEID = value; }
       }
       public long BOB_LOCATIONID
       {
           get { return _BOB_LOCATIONID; }
           set { this._BOB_LOCATIONID = value; }
       }
       public long NBRANCH_SL
       {
           get { return _NBRANCH_SL; }
           set { this._NBRANCH_SL = value; }
       }

       public long NREGION_SL
       {
           get { return _NREGION_SL; }
           set { this._NREGION_SL = value; }
       }
       public string BOB_DESCRIPTION
       {
           get { return _BOB_DESCRIPTION; }
           set { this._BOB_DESCRIPTION = value; }
       }
       public long NCM_SL
       {
           get { return _NCM_SL; }
           set { this._NCM_SL= value; }
       }
       public string CNAME
       {
           get { return _CNAME; }
           set { this._CNAME = value; }
       }
     
     
       public IEnumerable<cJAB_MT_SHOP_REGN_LQ>  getALL()
       {
           DC_ShopRegionDataContext db = new DC_ShopRegionDataContext();
           IEnumerable<cJAB_MT_SHOP_REGN_LQ> de = null;
           de = from RTA in db.BOB_LOCATION_MASTERs
                join RFPS in db.AB_MT_SHOP_REGIONs on   RTA.BOB_LOCATIONID equals RFPS.BOB_LOCATIONID into ps
                from p in ps.DefaultIfEmpty()
                join CMREF in db.CM_MT_REF_CODEs on p.NREGION_SL equals CMREF.NCM_SL into rf
                from r in rf.DefaultIfEmpty()
                // where RFPS.BOB_LOCATIONID==xLOCID
                orderby RTA.BOB_DESCRIPTION
                select new cJAB_MT_SHOP_REGN_LQ
                (
               p.BOB_UNIQUEID, p.BOB_LOCATIONID, r.NBRANCH_SL, p.NREGION_SL, RTA.BOB_DESCRIPTION, r.NCM_SL, r.CNAME

                );
           return de;
       }

推荐答案

在这里,我有一个朋友帮我解决问题.事实证明,您必须分两个步骤进行操作.

here you go, I had a friend help me work it out. It turns out you have to do it in 2 steps.

var x1 = from RFPS in db.AB_MT_SHOP_REGIONs
  join CMREF in db.CM_MT_REF_CODEs on RFPS.NREGION_SL equals CMREF.NCM_SL into rf
  from CMREF in rf.DefaultIfEmpty()
  select new {RFPS, CMREF}


var de = from RTA in db.BOB_LOCATION_MASTERs
  join x in x1 on RTA.RTA.BOB_LOCATIONID equals x.RFPS.BOB_LOCATIONID into ps
  from x in ps.DefaultIfEmpty()
  select new cJAB_MT_SHOP_REGN_LQ
  (
  x == null ? "" : x.RFPS == null ? "" : x.RFPS.BOB_UNIQUEID, 
  x == null ? "" : x.RFPS == null ? "" : x.RFPS.BOB_LOCATIONID, 
  x == null ? "" : x.CMREF == null ? "" : x.CMREF.NBRANCH_SL, 
  x == null ? "" : x.RFPS == null ? "" : x.RFPS.NREGION_SL, 
  RTA.BOB_DESCRIPTION, 
  x == null ? "" : x.CMREF == null ? "" : x.CMREF.NCM_SL, 
  x == null ? "" : x.CMREF == null ? "" : x.CMREF.CNAME
  );


这篇关于作为列表类返回的LINQ外连接显示空值错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆