2010-07-06 154 views
1

我正在嘗試使用silverlight,wcf數據服務(在網站代碼上)和Linq-to-Entities。我知道匿名類型不能在silverlight上工作,於是我創建了一個已知的類來檢索一些信息。 (我知道這個查詢不完全是智能的,但它只是一個例子),但它不起作用。有人可以幫助我?Silverlight linq-to-entities匿名類型問題

這是代碼。

public class DataSummary 
{ 
    public DataSummary() { } 

    public int AccountID { get; set; } 

    public string Account { get; set; } 

    int accountID; 
    string account; 
} 

    var p = (from q in svc.Accounts 
       select new DataSummary() 
       { AccountID = (int) q.AccountID, 
        Account = q.Account1 
       }) as DataServiceQuery<DataSummary>; 

     p.BeginExecute(new AsyncCallback(r => 
     { 
      try 
      { 
       this.grid.ItemsSource = p.EndExecute(r).ToList(); 
      } 
      catch (Exception ex) 
      { 
       string message = ex.Message; 
      } 
     }), null); 

當我運行的例子,該錯誤信息是

ex.Message "An error occurred while processing this request." string 

它是如此有趣,因爲它沒有解釋的問題。

在這個問題

Silverlight 4 Data Binding with anonymous types

他們說,我們可以使用匿名類型,但我怎麼可以把「爲化DataServiceQuery ..........?

而且

+0

'ex'是否有'InnerException',可能會更清楚地發現實際出錯的地方?順便說一句,我沒有看到這裏使用任何匿名類型。 – AnthonyWJones 2010-07-06 17:15:17

+0

真正的查詢包括3或4個表格。所以我想做一些簡單的事情 – user375863 2010-07-06 18:21:18

+0

ase \t「<?xml version = \」1.0 \「encoding = \」utf-8 \「standalone = \」yes \「?> \ r \ n \ r \ n \ r \ n 響應要求版本2的數據服務的MaxProtocolVersion被設置爲DataServiceProtocolVersion.V1 \ r \ n「\t System.InvalidOperationException {System.Data.Services.Client.DataServiceClientException} – user375863 2010-07-06 18:26:17

回答

0

當安東尼告訴我關於內部異常,我就ProtocolVersion發現的錯誤。

public static void InitializeService(DataServiceConfiguration config) 
{ 
    config.SetEntitySetAccessRule("*", EntitySetRights.All); 

    //On the service. You have to add this line 
    config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2; 
} 

感謝安東尼。我不知道內excep存在。