我在linq中使用内部连接到实体。我必须选择两个表的所有列,而不是手动逐个列。下面是我的查询请看最后一行代码,我只能选择c1但不能选择c2。我怎样才能将c1和c2结合起来???,提前致谢
using (var db = new POSContext())
{
var query = (from c1 in db.LineMaster
join c2 in db.LineDetail on c1.OrderId equals c2.OrderId
where c1.OrderId == 123
select c1).ToList();
}
答案 0 :(得分:2)
当您仅选择c1或c2时,EF会根据所选记录创建匿名对象。在这种情况下,当您尝试选择c1和c2时,EF无法创建匿名对象。您应该手动创建自己的Model或anonimus对象:
using (var db = new POSContext())
{
var query = (from c1 in db.LineMaster
join c2 in db.LineDetail on c1.OrderId equals c2.OrderId
where c1.OrderId == 123
select new
{
IdC1 = c1.Id,
IdC2 = c2.Id,
// etc...
}).ToList();
}