10
我有两个表,Table1
和Table2
。我想执行,比方说,一个左外连接:在LINQ中加入JOIN后选择所有列
var myOutput = from object1 in Table1
join object2 in Table2
on object1.Property1 equals object2.Property2 into Table3
from output in Table3.DefaultIfEmpty()
select new
{
object1.Property1,
object1.Property2,
//...
output.Property3,
output.Property4,
//...
};
正如你可以看到,我想选择从结果表两个对象的所有属性(而加盟被认为是可枚举包含某些类型的对象 - 这两种关系都不同)。当然,我可以选择匿名选择中的属性,如示例中所示。
我的问题是如何避免手动指定所有属性?我想有类似SELECT * FROM TABLE3
,其中TABLE3
是一个结果关系(加入TABLE1
和TABLE2
后)。
在此先感谢您的线索。
不是第一个选项在赋值过程中使用ToString()方法吗?在这种情况下,我会在执行myOutput.ToArray()之后在名为Object1的列中获得“Namespace.MyType”值... – Jamie
不,它不会调用ToString(),是什么让你知道它会?你是否将它绑定到某种UI控件? * control *可能调用'ToString()',但查询本身是真实的,只是使用整个对象并将其映射到一个属性。 –
你的评论给了我一个想法 - 我做了一个包含两个对象的引用的新类。然后很容易绑定到这些的某些属性:) – Jamie