如何从Linq中的不同表中选择同一列的名称?
答
这听起来像你希望TableA和TableB的两个实体合并成一个新的对象。您可以使用.Select()
扩展方法创建一个新的匿名类型,或者创建一个您已经定义的类。
这里的要求是你必须在TableA和TableB之间找到一个共同的属性。在这里,我假设你有类似ID
的东西来匹配它们。
匿名类型
var mergedTests = from a in db.TableA
join b in db.TableB on a.CommonID equals b.CommonID
select new
{ TestFromA = a.Test, TestFromB = b.Test }
.ToList();
现有类
List<MyCustomTests> mergedTests = from a in db.TableA
join b in db.TableB on a.CommonID equals b.CommonID
select new MyCustomTests
{ TestName= a.Test, ShortName= b.Test }
.ToList();
+0
这不是我想要的,我想从表A和B中选择列Test到同一行,但列名不同。例如。 TestA和TestB在同一行。 – Anonymous 2010-08-11 04:31:29
答
class Program
{
static void Main(string[] args)
{
var A = new Data[] {
new Data { Test = 1, Relation = 1 },
new Data { Test = 2, Relation = 2 },
new Data { Test = 3, Relation = 3 },
new Data { Test = 4, Relation = 4 },
new Data { Test = 5, Relation = 5 },
};
var B = new Data[] {
new Data { Test = 2, Relation = 2 },
new Data { Test = 3, Relation = 3 },
new Data { Test = 5, Relation = 5 },
};
var res = from a in A
join b in B on a.Relation equals b.Relation
select new { TestA = a.Test, TestB = b.Test };
}
}
class Data
{
public int Test;
public int Relation;
}
做这个表有什么关系? – zerkms 2010-08-11 03:17:14
@zerkms:表A与表B有关系。 – Anonymous 2010-08-11 04:30:08
通过什么字段? – zerkms 2010-08-11 04:37:49