2011-11-02 49 views
0

我有兩項服務,即客戶服務和產品服務。它們是獨立的,每個都有自己的實體類型。當我將它們分成兩個不同的項目時,它們工作正常。但是,當他們在同一個項目中時,當我嘗試導航到每個服務url時,出現類似以下的錯誤。Wcf數據服務反射提供商抱怨無關的類型

The server encountered an error processing the request. The exception message is 'Type 'Common.Model.Product' has property 'Category' of entity type. Either this property has no corresponding entity set in the data context or one of its inherited types has a corresponding entity set. Specify IgnoreProperties attribute on the entity type for this property or use a property type that has a corresponding entity set in the data context.'

在這種錯誤的情況下,我tryiing到naviagate客戶服務的URL,但它抱怨從未使用或客戶服務中引用的產品服務實體類型。相若方式,當我嘗試導航產品服務URL我得到這個錯誤:

The server encountered an error processing the request. The exception message is 'The property 'Customers' on type 'Common.Model.Branch' is not a valid property. Properties whose types are collection of primitives or complex types are not supported.'

再次,誤差大約是在產品服務使用,並且從未使用過或客戶服務引用的EntityType。

我想重申,如果我將這些服務和它們的實體類型分離到不同的項目中,兩種服務都可以正常運行。

有沒有辦法解決這個問題?

回答

0

的問題是,對於這兩種服務的實體類型是從同一個基類派生:

[DataServiceKeyAttribute("Id")] 
public class BaseEntity : INotifyPropertyChanged 
{ 
    #pragma warning disable 67  // Required by the interface 
    public event PropertyChangedEventHandler PropertyChanged; 
    #pragma warning restore 67 

    public int Id { get; set; } 
} 

無論出於何種原因(我還是不太明白爲什麼),這使得反射提供商走所有的派生類爲每項服務。當我刪除這個依賴時,服務開始工作。