道歉,如果有太多的/沒有足夠的細節,或者有一些是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實體類繼承。任何想法讚賞。
謝謝,該訣竅 – Oli