Cascade Delete

0

Witam, próbuje usunąć wpis z "głównej" tabeli w mojej bazie danych. Zaimplementowałem fluent api na poszczegołne relacje, niestety gdy probuje usunąć wpis z głownej tabeli nic sie nie dzieje. Dodam, że gdy usuwam wpisy z mniej złożonych tabel wszystko dziala i wpisy zostaja usunięte. O czym mogłem zapomnieć? Czy wpis w tabeli, który odnosi sie do wielu wpisów z innych tabel nie da się zrobic za pomocą fluent api?

0

Pokaż swojego fluenta albo zobaczy mój przykład tu
https://4programmers.net/Forum/Ci.NET/297381-fluentapi_do_kaskadowego_usuwania_aspnet_mvc

Sprawdź też w bazie danych czy masz odpowiednie zachowania poustawiane w relacjach. Może Fluent nie wygenerował czegoś

0

CreateTable(
"dbo.Klient",
c => new
{
ID = c.Int(nullable: false, identity: true),
UserName = c.String(nullable: false, maxLength: 20),
Haslo = c.String(nullable: false, maxLength: 20),
Email = c.String(nullable: false),
})
.PrimaryKey(t => t.ID);

        CreateTable(
            "dbo.Rezerwacja",
            c => new
                {
                    ID = c.Int(nullable: false, identity: true),
                    PokojID = c.Int(nullable: false),
                    KlientID = c.Int(nullable: false),
                    PlatnoscID = c.Int(nullable: false),
                })
            .PrimaryKey(t => t.ID)
            .ForeignKey("dbo.Klient", t => t.KlientID, cascadeDelete: true)
            .Index(t => t.KlientID);
        
        CreateTable(
            "dbo.Payment",
            c => new
                {
                    ID = c.Int(nullable: false),
                    DateOfPayment = c.DateTime(nullable: false),
                    IsPaid = c.Boolean(nullable: false),
                    PayType = c.String(nullable: false, maxLength: 20),
                    Koszt = c.Int(nullable: false),
                    RezerwacjaID = c.Int(),
                })
            .PrimaryKey(t => t.ID)
            .ForeignKey("dbo.Rezerwacja", t => t.ID, cascadeDelete: true)
            .Index(t => t.ID);
        
        CreateTable(
            "dbo.RezerwacjaPokoju",
            c => new
                {
                    ID = c.Int(nullable: false, identity: true),
                    RezerwacjaID = c.Int(nullable: false),
                    PokojID  = c.Int(nullable: false),
                    Od = c.DateTime(nullable: false),
                    Do = c.DateTime(nullable: false),
                })
            .PrimaryKey(t => t.ID)
            .ForeignKey("dbo.Rezerwacja", t => t.RezerwacjaID, cascadeDelete: true)
            .ForeignKey("dbo.Pokoj", t => t.PokojID , cascadeDelete: true)
            .Index(t => t.RezerwacjaID)
            .Index(t => t.PokojID );
        
        CreateTable(
            "dbo.Pokoj",
            c => new
                {
                    ID = c.Int(nullable: false, identity: true),
                    TypPokojuId = c.Int(nullable: false),
                    Status = c.String(),
                })
            .PrimaryKey(t => t.ID)
            .ForeignKey("dbo.TypPokoju", t => t.TypPokojuId, cascadeDelete: true)
            .Index(t => t.TypPokojuId);
        
        CreateTable(
            "dbo.TypPokoju",
            c => new
                {
                    ID = c.Int(nullable: false, identity: true),
                    Rozmiar = c.Int(nullable: false),
                    Koszt = c.Decimal(nullable: false, precision: 18, scale: 2),
                    TypLozka = c.Int(nullable: false),
                    Lazienka = c.Boolean(nullable: false),
                    LiczbaLozek = c.Int(nullable: false),
                    LiczbaLudzi = c.Int(nullable: false),
                })
            .PrimaryKey(t => t.ID);
0

Wrzuciłem initializer czy wrzucić coś jeszcze?

0

A masz jakiegoś Seed()-a do tego z jakimiś danymi?
Co chcesz usuwać? Która tabela jest "główna"?
Usuwasz Rezerwacja i ma się usunąć RezerwacjaPokoj i Payment?

1 użytkowników online, w tym zalogowanych: 0, gości: 1