2

データベースには、次のような2つのテーブルがあります。

お客様:

C_ID  city
--------------
1     Dhaka
2     New york
3     London

個人情報:

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


次のような選択結果が必要です。

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クエリはどのようになりますか?

ありがとう
ナヒド

4

1 に答える 1

3

Linq to Sql:複数の左外部結合などの以前の回答に続いて、これを解決するための構造を確認できます。たとえば、次のようになります。

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の制限を削除してください

于 2012-04-05T10:01:39.887 に答える