我如何在LINQ中使用左外部联接 [英] how can i use left outer join in LINQ

查看:85
本文介绍了我如何在LINQ中使用左外部联接的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,

如何使用LINQ中的左外部联接从两个表中获取数据.

问候,
S.Inayat Basha.

Hi All,

How can we get data from two tables by using left outer join in LINQ.

Regards,
S.Inayat Basha.

推荐答案

示例代码,

Sample code,

var result = from accountDetails in context.AccountDetails
             join payment in context.PaymentDetails
             on accountDetails.AccountID equals payment.AccountID into temp
             from resultDetails in temp.DefaultIfEmpty()
             select new { temp.PayeeName,temp.AccountType };


最好的方法是在SQL中创建一个过程并将其用作数据源
The best way would be to create a procedure in SQL and use that as the datasource


Hai .. Inayat Basha

我遵循这个方法来进行leftouterjoin..但是我不确定这是更好的方法.

问候
sanal p.s
9846385010
科钦

使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Text;
使用System.IO;

命名空间varklinq
{
公共课程cJAB_MT_SHOP_REGN_LQ
{

字符串_BOB_UNIQUEID;
长的? _BOB_LOCATIONID;
长_NBRANCH_SL;
长的? _NREGION_SL;
字符串_BOB_DESCRIPTION;
长的? _NCM_SL;
字符串_CNAME;

public cJAB_MT_SHOP_REGN_LQ(字符串vBOB_UQ_ID,长?vBOB_LOC_ID,长vNBRANCH,长?vNRGION,字符串vBOB_DESCRTN,长?vNCM_SL,字符串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;
}
公共cJAB_MT_SHOP_REGN_LQ()
{
}
公共字符串BOB_UNIQUEID1
{
得到{return _BOB_UNIQUEID; }
设置
{

this._BOB_UNIQUEID =值;
}
}
公共长? BOB_LOCATIONID
{
得到{return _BOB_LOCATIONID; }
设置{this._BOB_LOCATIONID =值; }
}
公共长NBRANCH_SL
{
得到{return _NBRANCH_SL; }
设置{this._NBRANCH_SL =值; }
}

公共长? NREGION_SL
{
得到{return _NREGION_SL; }
设置{this._NREGION_SL =值; }
}
公共字符串BOB_DESCRIPTION
{
得到{return _BOB_DESCRIPTION; }
设置{this._BOB_DESCRIPTION =值; }
}
公共长? NCM_SL
{
得到{return _NCM_SL; }
设置{this._NCM_SL =值; }
}
公用字符串CNAME
{
得到{return _CNAME; }
设置{this._CNAME =值; }
}



公共IEnumerable< cJAB_MT_SHOP_REGN_LQ> getALL()
{
DC_ShopRegionDataContext db =新的DC_ShopRegionDataContext();
IEnumerable< cJAB_MT_SHOP_REGN_LQ> de = null;
de =来自db.BOB_LOCATION_MASTERs中的RTA

在RTA上的db.AB_MT_SHOP_REGIONs中加入RFPS.BOB_LOCATIONID等于RFPS.BOB_LOCATIONID进入ps
从ps中的p.DefaultIfEmpty()
将p.NREGION_SL上的db.CM_MT_REF_CODEs中的CMREF加入到rf
中等于CMREF.NCM_SL 从rf.DefaultIfEmpty()中的r开始
//其中RFPS.BOB_LOCATIONID == xLOCID
通过RTA.BOB_DESCRIPTION订购
选择新的cJAB_MT_SHOP_REGN_LQ
(
p == null吗? ":p == null? ":p.BOB_UNIQUEID,
RTA == null? 0:RTA ==空? 0:RTA.BOB_LOCATIONID,
r == null吗? 0:r ==空? 0:r.NBRANCH_SL,
p == null吗? 0:p ==空? 0:p.NREGION_SL,
RTA.BOB_DESCRIPTION,
r == null吗? 0:r ==空? 0:r.NCM_SL,
r.CNAME

);
return de;
}
公共IEnumerable< cJAB_MT_SHOP_REGN_LQ> getALLRegion(long xNREGION)
{
DC_ShopRegionDataContext db =新的DC_ShopRegionDataContext();
IEnumerable< cJAB_MT_SHOP_REGN_LQ> de = null;

de =来自db.BOB_LOCATION_MASTERs中的RTA

在RTA上的db.AB_MT_SHOP_REGIONs中加入RFPS.BOB_LOCATIONID等于RFPS.BOB_LOCATIONID进入ps
从ps中的p.DefaultIfEmpty()
将p.NREGION_SL上的db.CM_MT_REF_CODEs中的CMREF加入到rf
中等于CMREF.NCM_SL 从rf.DefaultIfEmpty()中的r开始
其中p.NREGION_SL == xNREGION
通过RTA.BOB_DESCRIPTION订购
选择新的cJAB_MT_SHOP_REGN_LQ
(
p == null吗? ":p == null? ":p.BOB_UNIQUEID,
RTA == null? 0:RTA ==空? 0:RTA.BOB_LOCATIONID,
r == null吗? 0:r ==空? 0:r.NBRANCH_SL,
p == null吗? 0:p ==空? 0:p.NREGION_SL,
RTA.BOB_DESCRIPTION,
r == null吗? 0:r ==空? 0:r.NCM_SL,
r.CNAME

);

return de;
}



}
}
Hai.. Inayat Basha

i follow this for leftouterjoin.. But i am not sure this is better way.

regards
sanal p.s
9846385010
cochin

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace varklinq
{
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_UNIQUEID1
{
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 == null ? "" : p == null ? "" : p.BOB_UNIQUEID,
RTA == null ? 0 : RTA == null ? 0 : RTA.BOB_LOCATIONID,
r == null ? 0 : r == null ? 0 : r.NBRANCH_SL,
p == null ? 0 : p == null ? 0 : p.NREGION_SL,
RTA.BOB_DESCRIPTION,
r == null ? 0 : r == null ? 0 : r.NCM_SL,
r.CNAME

);
return de;
}
public IEnumerable<cJAB_MT_SHOP_REGN_LQ> getALLRegion(long xNREGION)
{
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 p.NREGION_SL ==xNREGION
orderby RTA.BOB_DESCRIPTION
select new cJAB_MT_SHOP_REGN_LQ
(
p == null ? "" : p == null ? "" : p.BOB_UNIQUEID,
RTA == null ? 0 : RTA == null ? 0 : RTA.BOB_LOCATIONID,
r == null ? 0 : r == null ? 0 : r.NBRANCH_SL,
p == null ? 0 : p == null ? 0 : p.NREGION_SL,
RTA.BOB_DESCRIPTION,
r == null ? 0 : r == null ? 0 : r.NCM_SL,
r.CNAME

);

return de;
}



}
}


这篇关于我如何在LINQ中使用左外部联接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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