今天我问了这个问题,但我错过了一些在这个问题中描述得更多的东西。
我有三张桌子:
[Table1]
- ID // Unique
- Name
- Location
- Country
[Table2]
- ID - Unique
- Table1.ID
- Value
[Table3]
- Table2.Value
- LN
- Name
关系:
一个 Table1.ID 到多个 Table2.Table1.ID
我需要的是 ling-to-sql 查询,其中会得到类似的结果
- 从 Table1 中获取所有内容
- 对于 Table2.Table1.ID 中的所有 Table1.ID,将 Table2.Value 作为数组 (int)
- 对于所有 Table2.value as 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