今日、私はこの質問をしますが、何かを見逃したので、この質問で詳しく説明しません。
私は3つのテーブルを持っています:
[Table1]
- ID // Unique
- Name
- Location
- Country
[Table2]
- ID - Unique
- Table1.ID
- Value
[Table3]
- Table2.Value
- LN
- Name
関係:
1 つの Table1.ID から複数の Table2.Table1.ID
私が必要としているのは、次のような結果が得られる ling-to-sql クエリです
- Table1 からすべてを取得
- Table2.Table1.ID 内のすべての Table1.ID について、Table2.Value を配列 (int) として取得します。
- すべての Table2.value を array(int) として、配列文字列 Table3.Name を取得します。ここで、Table2.Value は Table3.Table2.Value と等しく、LN = "en" です。
例:
表1
ID | Name | Location | Country |
1 | TestName | TestLocation | SomeCountry |
表2
ID | FK | Val |
1 | 1 | 5 |
2 | 1 | 7 |
表3
Val | Ln | Name |
5 | en | Testname1 |
7 | en | Testname2 |
結果:
1,TestName,TestLocation,SomeCountry,List<string>{Testname1,Testname2}
私の ling to sql クエリは Table2.Value のみを List として取得します。変更を加えることができるかもしれません。
var result = (from t1 in context.Table1
select new CLASS
{
ID = t1.ID,
NAME = t1.Name,
LOCATION = t1.loc,
COUNTRY = t1.Country,
CategoryArray = new List<int>(t1.Tabel2.Select(p => p.CategoryID).ToArray())
}).Take(10).ToList();
ASP.NET C# 4.0 LINQ TO SQL