Отношение ко многим ко многим в структуре сущности 6 кода сначала - PullRequest
0 голосов
/ 22 сентября 2018

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

public class Subsystem
{
    public int SubsystemId { get; set; }
    public string SubsystemName { get; set; }
    public virtual ICollection<Component> Components { get; set; }
}
public class Component
{
    public int ComponentId { get; set; }
    public string ComponentName { get; set; }
    public virtual ICollection<Subsystem> Subsystems { get; set; }
}

Ни один из них не важнее другого - они могут существовать отдельно, но иногда их можно соединить с помощью соответствующей записи в таблице соединений.Теперь, после создания миграции, я получаю что-то вроде этого:

public override void Up()
{
    CreateTable(
            "dbo.Component",
            c => new
                {
                    ComponentId = c.Int(nullable: false, identity: true),
                    ComponentName = c.String(nullable: false, maxLength: 100)
                })
            .PrimaryKey(t => t.ComponentId)

        CreateTable(
            "dbo.Subsystem",
            c => new
                {
                    SubsystemId = c.Int(nullable: false, identity: true),
                    SubsystemName = c.String(nullable: false, maxLength: 100),
                 })
            .PrimaryKey(t => t.SubsystemId);

        CreateTable(
            "dbo.SubsystemComponents",
            c => new
                {
                    Subsystem_SubsystemId = c.Int(nullable: false),
                    Component_ComponentId = c.Int(nullable: false),
                })
            .PrimaryKey(t => new { t.Subsystem_SubsystemId, t.Component_ComponentId })
            .ForeignKey("dbo.Subsystem", t => t.Subsystem_SubsystemId, cascadeDelete: true)
            .ForeignKey("dbo.Component", t => t.Component_ComponentId, cascadeDelete: true)
            .Index(t => t.Subsystem_SubsystemId)
            .Index(t => t.Component_ComponentId);

    }

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

Introducing FOREIGN KEY constraint 'FK_dbo.SubsystemComponents_dbo.Component_Component_ComponentId' on table 'SubsystemComponents' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.

Я почти уверен, что это результат cascadeDelete: true.

Я не знаю, как заставить его установить значение false.Я использую FluentAPI, и все должно быть настроено в классе конфигурации для каждого объекта.

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