【问题标题】:How to join two tables in linq to entities如何将 linq 中的两个表连接到实体
【发布时间】:2013-12-03 05:06:14
【问题描述】:

我在 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();
}

【问题讨论】:

    标签: entity-framework


    【解决方案1】:

    当您仅选择 c1 或 c2 时,EF 根据所选记录创建匿名对象。在这种情况下,当您尝试选择 c1 和 c2 时,EF 无法创建匿名对象。您应该手动创建自己的模型或匿名对象:

    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();
     }
    

    【讨论】:

    • 感谢您的回复,我需要更多帮助。那我如何将 c1 或 c2 指定为数据源来赢得表单 datagridview ???请尽快回复......谢谢。
    • 这是另一个答案。您应该接受或不接受此问题的答案,并提出有关 datagridview 的新问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-21
    • 1970-01-01
    • 1970-01-01
    • 2010-12-03
    • 2014-08-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多