使用匿名类型将数据加载到数据网格中

时间:2012-07-02 21:58:06

标签: wpf silverlight linq entity-framework

以下是正在发生的事情。如果我将以下内容绑定到数据网格

var myQ = myDataContext.MyEntity1.Where(e1 => e1.ID == aNum);
datagrid1.ItemSource = myQ

我可以在datagrid中看到数据。

但如果我这样做

var myQ = myDataContext.MyEntity1.Join(myDataContext.MyEntity2, e1=>e1.ID, e2 =>e2.ID, (e1,e2) =>new {e1.something, e2.something};
datagrid1.ItemSource = myQ;

无法使用数据加载数据网格。为什么?与异步有什么关系?然后为什么会这样。那里有工作和。但是不会那么?我应该怎样调用更新datagrid来加载它?

2 个答案:

答案 0 :(得分:1)

我可以建议一种不同的方法吗?

var myQ =  (from a in myDataContext.E1
            join b in myDataContext.E2 on a.id equals b.id
            select new {a.something, b.something}).ToList();
datagrid1.ItemSource = myQ;

希望它有所帮助!

修改

var myQ =  (from a in myDataContext.E1
            join b in myDataContext.E2 on a.id equals b.id
            select a).ToList();
datagrid1.ItemSource = myQ;

答案 1 :(得分:0)

如果您尚未使用此工具,我建议LinqPad。它将帮助您准确了解Linq语句的输出,并且还可以看到Linq查询生成的精确SQL。使用它可以快速,轻松地测试您的Linq。

希望这会有所帮助。祝你好运!