循环并更新返回多个对象的LINQ查询

时间:2014-03-05 10:35:27

标签: c# linq-to-sql

我的LINQ查询返回两个对象

 var results = (from r in _context.Obj1
                join ple in _context.Obj2 on r.Obj1ID equals ple.Obj2ID
                where Obj1.Property1 == "something" 
                select new { Obj1 = r, Obj2 = ple}).ToList();

我将两个对象放入结果中。

现在我需要循环并更新这些对象的一些属性,

之类的,

 foreach (var res in results )
            {
                res.Obj1.Property1 = "Completed";
                //Update Obj1
                res.Obj2.Property1 = "Done";
            }

但我无法在foeach循环中将Obj1作为res.Obj1访问。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

您应该能够访问foreach循环中匿名对象的属性。你有任何编译或运行时错误吗?

替代解决方案

为您的结果创建POCO:

class MyClass {
    public string Obj1 { get; set; }
    public string Obj2 { get; set; }
}

使用对象:

select new MyClass() { Obj1 = r, Obj2 = ple}