2011-08-29 61 views
1

我在SL应用程序中使用radgrid控件使用RIA服务/ MVVMTypeAccessException使用RIA服务和Telerik的RadGridView

在我的ViewModel我有一个IEnumerable集合时,只需露出收集工作正常排序时:

public IEnumerable<Orders> OrderList 
    { 
     get 
     { 
      return datacontext.Orders; 
     } 
    } 

然而,当我试图解决之前它绑定(如下)收集我得到一个错误“消息:System.typeaccessexception尝试通过方法DynamicClass.lambda .....”和应用程序挂起:

public IEnumerable<Orders> OrderList 
    { 
     get 
     { 
      return datacontext.Orders.OrderBy(o=>o.OrderDate); 
     } 
    } 

您能否建议如何在不导致此问题的情况下公开排序的数据?

+0

可以粘贴完整的例外呢? – Jeff

回答

0

您可以添加.ToArray().ToList()调用您的LINQ查询的结尾,例如:

public IEnumerable<Orders> OrderList 
    { 
     get 
     { 
      return datacontext.Orders.OrderBy(o=>o.OrderDate).ToList(); 
     } 
    } 
+0

如果解释了为什么会有所帮助,答案可以改进?那么为什么'.ToList()'解决了这个问题呢? – AnthonyWJones

+0

@AnthonyWJones:我同意我的回答会更好,如果我能解释为什么。说实话,我无法理解我得到的错误消息,它提到了lambda方法和'System.Linq.OrderedEnumerable'(不是'IOrderedEnumerable')。我认为这个错误信息和OP得到的一样。如果您了解更多信息,欢迎您发表其他答案。 –

+0

我没有“替代”,你的答案很好。我想我可以猜到发生了什么,但我认为你可能有一个更明确的理由。 – AnthonyWJones