鉴于以下内容:
var item = (from table1 in Entity.table1
join table2 in Entity.table2
on table1.ID equals table2.fkId
where table1.ID == TheID
select table1
)
如何从table1
返回所有字段,然后从table2
添加一些字段,而不必像这样再次明确定义所有列:
where table1.ID == TheID
select new
{
table1.field,
table1.field2,
etc, etc,etc,etc,
table2.field1
}
答案 0 :(得分:1)
如何从table1返回所有字段,然后从中添加一些字段 table2无需显式定义所有列
你做不到。应指定匿名对象的所有属性。但是你可以从table1返回整个实例,从table2返回一些字段:
select new
{
table1
table2.field1
}
然后第一个表中的所有属性都将通过x.table1.field2
提供,您不会手动将它们全部列出。
答案 1 :(得分:1)
您可以保留table1和table2
where table1.ID == TheID
select new
{
table1,
table2
}
并按myItem.table1.field
如果您想通过第一级属性访问,则可以创建dynamic类,通过从一个或另一个表反射返回正确的值,或实现{{3}如果你想在UI上显示表格(Winform和WPF网格都识别这个界面)