2010-08-11 46 views
0

我正在使用Silverlight 4從實體集中獲取單個實體。聽起來不太難?!好了,我根本無法得到它的工作:Silverlight 4 RIA Services - 從EntitySet中選擇第一個實體

myDomainContext dc = new OrgUnitTestDomainContext(); 
OrgUnit ou; 
ou=dc.OrgUnits[0]; //Error 1 The property or indexer 'System.ServiceModel.DomainServices.Client.EntitySet.List' cannot be used in this context because the get accessor is inaccessible 
ou=dc.OrgUnits.First; //Error 2 ... does not contain a definition for 'First' and no extension method 'First' accepting a first argument 
ou=dc.OrgUnits.Current; //Error 3 ... does not contain a definition for 'Current' and no extension method 'Current' accepting a first argument 
ou=dc.OrgUnits.List.First; //Error 4 The property or indexer 'System.ServiceModel.DomainServices.Client.EntitySet.List' cannot be used in this context because the get accessor is inaccessible 
ou=dc.OrgUnits.List.Current; //as Error 3 

我看不到,因爲樹木的森林,還是我真的有做醜陋的東西,如:

//That works 
System.Collections.Generic.IEnumerator<OrgUnit> enu = dc.OrgUnits.GetEnumerator(); 
enu.MoveNext(); 
ou = enu.Current; 

//That works, but its ugly, too 
foreach (OrgUnit ou in dc.OrgUnits) 
{ 
    SelectedOrgUnit = ou; 
    break; 
} 

有沒有人一個想法有什麼不對 - 正如所說,我只是試圖獲得一個單一的實體? 恭喜, rwh

回答

0

您尚未將任何數據加載到您的DomainContext中。在你加載你需要的數據之前它是空的。 (除非你在XAML中這樣做)

+0

嗨,謝謝你的提示。實際上,聲明 myDomainContext dc = new OrgUnitTestDomainContext(); 是其他地方,我只是複製它,以澄清dc的含義。所有其他行都在OnOrgUnitsLoaded中,加載完成後立即調用該方法。 評論中顯示的錯誤消息已經在設計時顯示,所以我想還有另一種方法可以做到這一點? – rwh 2010-08-11 21:33:19

相關問題