2011-06-28 40 views
0

道歉,如果有太多的/沒有足夠的細節,或者有一些是irelevant,這是我在這個委員會的第一篇文章:我如何轉換多個WCF RIA實體類型單一類型用在視圖模型

背景

我目前正在使用VS2010在C#中開發基於Silverlight 4和WCF RIA(SP1)的應用程序。該堆棧是:SQL Server的 - > nHibernate的 - >域服務 - >服務代理 - > Silverlight 4客戶端(MVVM)

我有4個表中的數據庫與他們在相同的字段每個表中持有不同的'類型'的相同數據。

數據應該真的在一個表中有一個類型列,但它是一個我無法更改的遺留數據庫。

我已經創建了每個表的POCO和一個處理訪問和更新四個不同實體集的單個域服務。這些類型投影到Silverlight客戶端,並且所有的CRUD內容都按預期工作。

問題

我有一個視圖模型,在其中包含一個ObservableCollection其中T是4種實體類型之一,但是我不想用4件藏品持有不同的實體類型。 UI將允許用戶選擇一種類型,我想使用相同的集合和UI綁定來編輯該數據。

我已經試過

  • 創建一個通用域名服務,但它們不被支持。

  • 使服務器端實體類型從抽象類繼承或實現接口,但域服務不投影抽象類或接口。

  • 爲實現客戶端接口的4個投影實體創建客戶端部分類。然而,當我嘗試並分配到ObservableCollection<MyEntity>ObservableCollection<MyEntityInterface>收到以下錯誤:

Cannot implicitly convert type 'System.Collections.ObjectModel.ObservableCollection<BusinessDomain.StandardInterestRate>' to 'System.Collections.ObjectModel.ObservableCollection<BusinessDomain.IInterestRate>'

我懷疑的原因是StandardInterestRate從RIA實體類繼承。任何想法讚賞。

回答

0

嘗試

ObservableCollection<MyEntity> entities = ... 
ObservableCollection<MyEntityInterface> iEntities = new ObservableCollection(entities.Cast<MyEntityInterface>()); 
+0

謝謝,該訣竅 – Oli

相關問題