我之前已經發布過一些問題,但它有所不同。我應該從我的模型中刪除所有繼承以便與ria服務一起工作嗎?
因此,考慮我們的模型中的一小部分:
- 人
- 客戶
- 員工
- 配偶
人是具有基類3從它繼承的類。
這4個在我們的設計中非常核心,並且鏈接到許多其他實體。 我可以通過刪除 繼承來解決我在ria服務中遇到的所有問題,但這確實會增加模型的複雜性。
我經歷是,我無法查詢爲客戶,員工或配偶,但是有人給我一個解決方案,這是像這樣的東西添加到的DomainService第一個問題:
public IQueryable<Employee> GetEmployees()
{
return this.ObjectContext.People.OfType<Employee>();
}
public IQueryable<Customer> GetCustomers()
{
return this.ObjectContext.People.OfType<Customer>();
}
public IQueryable<Spouse> GetSpouses()
{
return this.ObjectContext.People.OfType<Spouse>();
}
下一頁我試過的東西,似乎非常正常的對我說:
var employee = new Employee()
{
//.... left out to reduce the length of this question
};
var spouse = new Spouse()
{
//.... left out to reduce the length of this questions
};
employee.Spouse = spouse;
context.People.Add(spouse);
context.People.Add(employee);
context.SubmitChanges();
然後我得到以下異常:
無法檢索 派生實體類型「配偶」的實體集。使用 EntityContainer.GetEntitySet(類型)至 獲取爲基本實體 類型'Person'設置的實體。
即使配偶已經在數據庫中, 和我先檢索它,我也會得到類似的例外。
還要注意,由於某種原因,在一些地方「人」代替「人」 ......
那麼,如何解決這個問題,我在做什麼錯 ,我將繼續運行到在繼承使用ria服務時的牆壁?
我在網上找到了一些參考,都說它的工作原理,然後一些的DomainService 代碼中,他們suposedly改變的東西,但沒有詳細說明...
我使用VS2010 RC1 + Silveright 4
注:數據源窗口,可以神奇地運行在所有的MIX會議對我不起作用......它永遠不會顯示任何
謝謝!!!!這確實有幫助 – TimothyP 2010-04-05 16:37:07