将SQL(LEFT OUTER JOIN)转换为LinQ [英] Convert SQL (LEFT OUTER JOIN) to LinQ

查看:72
本文介绍了将SQL(LEFT OUTER JOIN)转换为LinQ的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有人可以将下面的原始sql转换为linq吗?

Could someone please convert the below raw sql to linq ?

_sql= " SELECT tbl_book.*, tbl_time.tt_scope, tbl_time.tt_time "+
      " FROM tbl_time "+ 
      " LEFT OUTER JOIN tbl_book ON tbl_time.tt_time = tbl_book.book_time "+
      " AND (tbl_book.ppt_id=@ppt_id AND tbl_book.fct_id=@fct_id "+
      " AND tbl_book.book_date=@book_date)";

推荐答案

如果

var ppt_id_param = "@ppt_id";
var fct_id_param = "@fct_id";
var book_date_param = "@book_date";

是我们的参数,而您的上下文是这样:

be our params, and your context be this:

TestEntities DBContext = new TestEntities();

您的linq查询如下:

your linq query is like:

var query = (from time in tbl_time
             join book in tbl_book on time.tt_time equals book.book_time 
                 into joinedList
             from book in joinedList.DefaultIfEmpty()
             where book == null ? 
                 true :
                 (
                      book.ppt_id == ppt_id_param &&
                      book.fct_id == fct_id_param &&
                      book.book_date == book_date_param &&
                 )
             select new {

                 time.tt_scope,
                 time.tt_time
                 book
             })
             .ToList();

这篇关于将SQL(LEFT OUTER JOIN)转换为LinQ的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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