46、C#:Linq的select连表操作

1.自连接,直接join即可

2.左连接,除了join之外,还需要加上:DefaultIfEmpty(),这个是用来给定这一行没有匹配上的默认值,引用类型为null,值类型为0

3.右连接,哪个表(如表a)要右连接(显示全部行值),直接把这个表(表a)放到最上面的from就可以了,其实就是换一个表的左连接

4.连接后使用了from  cc in aacc.DefaultIfEmpty()后,join之后的那个行号就不能再使用了,否则报没有定义的错误;右表只能使用cc来引用表的字段;且不能引用join之前的那个列表的字段

from  aa  in  list1

join  cc  in  list2  on aa.name  equals  cc.name  into  aacc   --一旦join之后,这一行就没有作用了,只能使用下面一行的行标

from  cc1  in  aacc.DefaultIfEmpty()

select new  book{

name = cc.name    //错误,cc这个行标已经不能再使用了

name = cc1.name  //正确

bookid = cc1.id  //错误,list2中没有id字段

bookid  =  aa.id  //正确

}


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xushaozhang/article/details/79195738
个人分类: C#
上一篇45、C#编译版本和数据库连接问题
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭