WebApi с EF Code First выдает ошибку при наличии связи родитель-ребенок

Ломаю голову над этим вопросом. Я нашел кое-что в интернете по этому поводу, но четкого ответа не нашел. Моя проблема:

У меня есть классы в разделе Model веб-приложения MVC3: ParentClass и ChildClass. У ParentClass есть свойство Children типа List

Я использовал EF Code First, который аккуратно генерирует для меня родительскую и дочернюю таблицы в базе данных.

Теперь мне нужен REST-сервис, который возвращает List или один ParentClass.

Когда я удаляю свойство Children из ParentClass, проблем не возникает. Но при наличии свойства Children я продолжаю получать ошибку.

Ошибка: "Тип System.Data.Entity.DynamicProxies.ParentClass_A0EBE0D1022D01EB84B81873D49DEECC60879FC4152BB115215C3EC16FB8003A не ожидался. Используйте атрибут XmlInclude или SoapInclude для указания типов, которые не известны статически."}

Некоторый код:

Классы:

     public class ParentClass
{
    public int ID { get; set; }
    public string Name {get;set;}
    public virtual List<ChildrenClass> Children { get; set; }

}

public class ChildrenClass
{
    public int ID { get; set; }
    public string MyProperty { get; set; }
}

Сервис:

[ServiceContract]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
[ServiceBehavior(IncludeExceptionDetailInFaults = true)] 
public class MyService
{

    static MyContext db;
    public MyService() { db = new MyContext(); }


    [WebGet(UriTemplate = "")]
    public List<ParentClass> GetParents()
    {
        var result = db.Parents.ToList();
        return result;

    }

Я не получаю результат при вызове этого сервиса. Что я делаю не так?

11
задан Mounhim 17 November 2011 в 20:19
поделиться