首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sql to linq with left join

sql to linq with left join
EN

Stack Overflow用户
提问于 2013-11-21 16:15:41
回答 1查看 73关注 0票数 0

我在SQL中创建了一个请求,并将它们放在dataset中。显然,当数据非常庞大时,它会挂起。所以我使用了一个实体。

我最初的sql是这样的:

代码语言:javascript
复制
SELECT NO_ORDRE,ORDRE.CODE_DEST as CODE_DEST,REF_EXPED,ORDRE.MODAL_MODE,RS_NOM,ADRESSE,TEL,VILLE,
ORDRE.NBR_COLIS,ORDRE.POID,DATE_CREE,DATE_CLOTUR,STATUT_ORDRE,ORDRE.TRANSPORTEUR,ORDRE.LIB_TOURNE,
ORDRE.DATE_CLOTUR_REEL,ORDRE.OBS,AUTRE_REF,
ORDRE.CODE_CLIENT+'_'+CAST(NOID as VARCHAR(50))+'_'+SUBSTRING(NO_ORDRE_CUMMUL, 0, CHARINDEX('_', NO_ORDRE_CUMMUL + '_')) as NOLV
FROM ORDRE
LEFT OUTER JOIN LETTRE_VOIT_FINAL
 ON  charindex('_'+cast(ORDRE.NO_ORDRE as varchar(255))+'_', '_'+LETTRE_VOIT_FINAL.NO_ORDRE_CUMMUL+'_') > 0

WHERE DATE_CREE BETWEEN @DATE_CREE_DEB AND @DATE_CREE_FIN
ORDER BY NO_ORDRE DESC

我像这样尝试我的linq:

代码语言:javascript
复制
public IQueryable<ORDRE> Get_OrdreEntity(DateTime datedeb, DateTime datefin)
        {
            try
            {
                IQueryable<ORDRE> LesListe;
                Soft8Exp_ClientEntities oEntite_T = new Soft8Exp_ClientEntities();              

                var query = from o in oEntite_T.ORDRE
                            where o.DATE_CREE >= datedeb && o.DATE_CREE <= datefin                            
                            select o;

                LesListe = query;

                return LesListe;
            }
            catch (Exception excThrown)
            {
                throw new Exception("Err_02", excThrown);
            }
        }

它工作得很好,但我不知道如何从这个sql进行连接:

代码语言:javascript
复制
LEFT OUTER JOIN LETTRE_VOIT_FINAL
 ON  charindex('_'+cast(ORDRE.NO_ORDRE as varchar(255))+'_', '_'+LETTRE_VOIT_FINAL.NO_ORDRE_CUMMUL+'_') > 0

我怎样才能把它从这个sql转换成linq:

代码语言:javascript
复制
ORDRE.CODE_CLIENT+'_'+CAST(NOID as VARCHAR(50))+'_'+SUBSTRING(NO_ORDRE_CUMMUL, 0, CHARINDEX('_', NO_ORDRE_CUMMUL + '_')) as NOLV
EN

回答 1

Stack Overflow用户

发布于 2013-11-21 16:40:33

  1. 我看不出有任何理由在Get_OrdreEntity函数中进行异常处理。它应该以它工作的方式进行编码。调试它。无论如何,您在catch中什么都不做。
  2. I您在此函数中查询和过滤数据,并希望获得结果,最好在此函数的结果中返回集合而不是查询,以消除性能和副作用问题。例如,在你想要的地方返回IEnumerable,ICollection,IList。
  3. 很容易找到一大堆Linq连接的例子,只要用谷歌就行了。Here is你需要的一切。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20115617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档