Wcf Data Service Reflection Поставщик жалуется на несвязанные типы - PullRequest
0 голосов
/ 02 ноября 2011

У меня есть две услуги: обслуживание клиентов и обслуживание продуктов.Они независимы и имеют свои типы сущностей .Они работают нормально, когда я разделил их на два разных проекта.Однако, когда они находятся внутри одного и того же проекта, когда я пытаюсь перейти к каждому URL службы, я получаю сообщение об ошибке, похожее на следующее.

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.'

В случае этой ошибки япытаюсь перейти по 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, который используется в Службе продукта и никогда не используется или не упоминается вСлужба поддержки клиентов.

Я хотел бы повторить, что если я разделю эти службы и их типы сущностей на отдельные проекты, обе службы будут работать нормально.

Есть ли способ решить эту проблему?

1 Ответ

0 голосов
/ 02 ноября 2011

Проблема заключалась в том, что типы сущностей для обеих служб были получены из одного и того же базового класса:

[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; }
}

По какой-либо причине (я до сих пор не совсем понимаю, почему) это заставило поставщика отражения пройти все производные классы для каждой службы. Когда я удалил эту зависимость, сервисы начали работать.

...