C# LINQ to SQL:在连接表时如何处理不明确的列名?

C# LINQ to SQL:在连接表时如何处理不明确的列名?,c#,linq-to-sql,anonymous-types,ambiguity,C#,Linq To Sql,Anonymous Types,Ambiguity,我将把这个问题与我之前提出的一个问题联系起来: 所以我有一个LINQ查询: var query = from t1 in myTABLE1List // List<TABLE_1> join t2 in myTABLE1List on new { t1.ColumnA, t1.ColumnB } equals new { t2.ColumnA, t2.ColumnB } join t3 in myTABLE1List on new {

我将把这个问题与我之前提出的一个问题联系起来:

所以我有一个LINQ查询:

var query =
    from t1 in myTABLE1List // List<TABLE_1>
    join t2 in myTABLE1List
      on new { t1.ColumnA, t1.ColumnB } equals new { t2.ColumnA, t2.ColumnB }
    join t3 in myTABLE1List
      on new { t2.ColumnA, t2.ColumnB } equals new { t3.ColumnA, t3.ColumnB }
  select new {t1.ColumnA, t2.ColumnA, t3.ColumnA } // Duplicate Anon type 'ColumnA'
var查询=
从myTABLE1List//列表中的t1开始
在MyTable1列表中加入t2
在新的{t1.ColumnA,t1.ColumnB}上等于新的{t2.ColumnA,t2.ColumnB}
在MyTable1列表中加入t3
在新的{t2.ColumnA,t2.ColumnB}上等于新的{t3.ColumnA,t3.ColumnB}
选择新{t1.ColumnA,t2.ColumnA,t3.ColumnA}//复制Anon类型'ColumnA'

如何解决此问题?

使用匿名类型属性的显式命名

select new {t1A = t1.ColumnA, t2A = t2.ColumnA, t3A = t3.ColumnA } 

这会有点多余,因为所有的
列都会因为连接而相等。@Albin,啊,是的,你是对的。不过,这只是一个例子。我处理的列不在联接中,因此它们不一定相等。