本文介绍了Linq中如何获得LEFT OUTER JOIN?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在我的数据库中的两个表看起来像:
I have two tables in my database that look like that:
客户:
C_ID city
--------------
1 Dhaka
2 New york
3 London
的personal_info:
Personal_Info:
P_ID C_ID Field value
-------------------------------
1 1 First Name Nasir
2 1 Last Name Uddin
3 2 First Name Jon
4 3 First Name Lee
我需要一个选择的结果这样的:
I need a select result like that:
C_ID =1:
C_ID Name (First Name + Last Name) City
------------------------------------------
1 Nasir Uddin Dhaka
C_ID ='2':
C_ID Name (First Name + Last Name) City
---------------------------------------------
2 Jon New york
如何将相应的LINQ查询是什么样子?
How would the corresponding Linq query look like?
感谢
Nahid
Thanks
Nahid
推荐答案
继previous答案如的可以看到结构解决这个例如是这样的:
Following a previous answer such as Linq to Sql: Multiple left outer joins you can see the structure for solving this eg something like:
var result = from customer in customers
from personalFirst in personal
.Where(pf => pf.Field == "First Name" && pf.C_ID == customer.C_ID)
.DefaultIfEmpty()
from personalLast in personal
.Where(pl => pl.Field == "Last Name" && pl.C_ID == customer.C_ID)
.DefaultIfEmpty()
where customer.C_ID == 2
select new { customer.C_ID, Name = (personalFirst != null ? personalFirst.Value : "") + " " + (personalLast != null ? personalLast.Value : "") };
显然,如果你想要的所有记录,然后卸下C_ID = 2
Obviously if you want all records then remove the restriction on C_ID = 2
这篇关于Linq中如何获得LEFT OUTER JOIN?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!