我在 linq toEntity 中使用内部联接。我必须选择两个表的所有列,而不是手动一一列地写入。下面是我的查询,请参阅最后一行代码,我只能选择 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();
}
最佳答案
当您仅选择c1或c2时,EF会根据所选记录创建匿名对象。在这种情况下,当您尝试选择 c1 和 c2 时,EF 无法创建匿名对象。您应该手动创建自己的模型或 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();
}
关于entity-framework - 如何在 linq toEntity 中连接两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20343296/