entity-framework - 如何在 linq toEntity 中连接两个表

标签 entity-framework

我在 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/

相关文章:

c# - 将 JSON 列从 MySql 数据库映射到来自 Web Api 的 C# 类

c# - ASP.NET 身份工厂模式是否会破坏 EntityFramework DbContext?

sql-server - 无法创建本地sql server 2012

c# - 脚手架 EntityFramework 6 无法将类型为 'System.Data.Entity.Core.Objects.ObjectContext' 的对象转换为 'System.Data.Objects.ObjectContext'

c# - MVC 4. 和 Entity Framework 表连接

database - 使用 Entity Framework 进行低级 SQL 优化

c# - 转换 Select 以从集合中的 .Last() 获取属性

c# - ASP.NET MVC + EF 性能

sql - 我想在数据库设计中删除表字段中的冗余

sql - 在 Entity Framework 中使用更新数据库时,子查询返回超过 1 个值错误