以下是我在lambda中的inner join
,
var myObject = tableNames.Join(tableSchool, x => x.sID , s => s.schoolID ,
( (x,s) => new { } ) ).ToList();
我在tableNames
和tableSchool
都有很多字段
通过我的lambda查询,如果tableNames
中有10个字段,我将在new { }
中记下10个字段中的所有10个字段。
我想知道的是如何从tableName
中选择tableSchool
表和一个字段的所有字段。
实施例
tableName tableSchool
--------- ------------
Nfield1 Sfield1
Nfield2 Sfield2
Nfield3 Sfield3
Nfield4
Nfield5
我想从tableName
获取所有字段,并从tableShcool
获取一个字段(Sfield1)。我想将这个数据源绑定到asp:GridView:)
答案 0 :(得分:3)
如果您需要两个表的详细信息,那么您可以:
List<AllDetails> myObject = tableNames.Join(tableSchool, x => x.sID, s => s.schoolID, ((x, s) => new AllDetails(x, s))).ToList();
其中:
public class AllDetails
{
private TableName tabName;
private TableSchool tabSchool;
public AllDetails(TableName tableName, TableSchool tableSchool)
{
//Assign fields here
}
}
答案 1 :(得分:0)
只是为了扩大Oded的评论。您可以通过执行以下操作在select语句中创建新的Anonymous类型:
(x, s) => new { x,s }
您还可以通过执行以下操作指定匿名类型中项目的名称:
(x, s) => new { TableName=x,TableSchool=s }
如果您需要在方法范围之外使用此方法,则需要使用aquaraga建议的新类。