Создание круговых сущностей с использованием структуры сущностей - PullRequest
0 голосов
/ 18 сентября 2018

Имеет следующие сущности:

public class Application{
    public int Id {get; set;}

    [ForeignKey("applicationId")]
    public virtual ICollection<Role> Roles {get; set;}
}

public class Role{
    public int Id {get; set;}
    public int applicationId {get; set;}

    [ForeignKey("RoleId")]
    public virtual ICollection<Permissions> Permissions {get; set;}
}

public class Permission{
    public int Id {get; set;}
    public int RoleId {get; set;}

    public int applicationId {get; set;}

    [ForeignKey("applicationId")]
    public virtual Application application {get; set;}
}

Как вы можете видеть, сущность Permission также ссылается на сущность приложения, так что в настоящее время у меня есть циклические ссылки.

Есть лиЛюбой способ создать полный набор данных, включая все ссылки, соответственно, как я могу сохранить эти объекты, используя Entity Framework?

В моем контроллере я получаю один Application Object в качестве параметра, включая все дочерние элементы (исключая applicationId объекта Permission).

1 Ответ

0 голосов
/ 20 сентября 2018

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

Application --> Role --> RolePermission --> Permission --> Application ...

на

Application --> Permission --> RolePermission --> Role

Причина, по которой разрешение напрямую связано с приложением, заключается в том, что разрешения жестко закодированы для каждого метода контроллера (например, [Can ("read-entity")]. Сама роль является переменной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...