Любая очевидная причина, по которой мои дочерние узлы бриза не будут расширяться?

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

Родительский класс "Проект"

public partial class Project
{
    public Project()

    public int Id { get; set; }
    public string Name { get; set; }
    public int ProjectOwnerId { get; set; }
    public int CurrentMilestoneId { get; set; }
    public int StatusId { get; set; }

    public virtual Milestone CurrentMilestone { get; set; }
    public virtual ProjectStatus Status { get; set; }
    public virtual ICollection<ProjectContact> Contacts { get; set; }
    public virtual ProjectAddress Address { get; set; }
}

Свойство дочернего узла «CurrentMilestone» возвращает значение null

public partial class Milestone
{

    public int Id { get; set; }
    public int MasterMilestoneId { get; set; }
    public string Name { get; set; }

    public virtual MasterMilestone MasterMilestone { get; set; }
    public virtual ICollection<Project> Projects { get; set; }
}

Свойство дочернего узла «Контакты» возвращается с массивом 0, даже если есть допустимые совпадающие данные.

public partial class ProjectContact
{
    public int Id { get; set; }
    public int ProjectId { get; set; }
    public int PersonId { get; set; }
    public string Title { get; set; }

    public virtual Person Person { get; set; }
    public virtual Project Project { get; set; }
}

Используя угловой/бриз HotTowel, я запускаю это..

return EntityQuery.from("Projects")
        .orderBy(orderBy)
        .expand("currentMilestone.masterMilestone, projectOwnerCompany, contacts, address")
        .using(self.manager).execute()
        .then(querySucceeded, self._queryFailed);

function querySucceeded(data) {
    projects = data.results;
    return projects;
}

Контроллер:

[HttpGet]
public IQueryable<Project> Projects()
{
    return _contextProvider.QueryAllReadOnly<Project>();
}

Странно то, что некоторые из них работают, например, Status работает, а LeaseStatus — нет (не показано, настраивается так же) без его расширения.

Просто чтобы добавить больше информации, если я запущу это с помощью API, ..../Projects?$expand=Status%2CCurrentMilestone%2CLeaseStatus%2CCurrentMilestone%2FMasterMilestone%2CContacts%2CContacts%2FPerson&

В Fiddler дочерние узлы не расширяются.


person Mastro    schedule 21.06.2014    source источник


Ответы (1)


Догадаться..

Измените контроллер с ReadOnly на non-readonly.

От

[HttpGet]
public IQueryable<Project> Projects()
{
    return _contextProvider.QueryAllReadOnly<Project>();
}

To

[HttpGet]
public IQueryable<Project> Projects()
{
    return _contextProvider.QueryAll<Project>();
}
person Mastro    schedule 22.06.2014