entity framework vložení NULL do ID   otázka

C#, Entity Framework, Databáze

Dobrý den,

používám pro přístup do Postgre databáze postgre Entity Framework.

při vkládání nového záznamu do databáze bych potřeboval abych mohl mít ve sloupci Id "null" hodnotu. V databázi je v INSERT TRIGGER a pokud je id zadáno tak ho použije pokud ne tak ho insert trigger nastaví.

Jenže v databázi je u položky id "Allow null = false" a entity Framework vygeneruje objekt podle databáze.

Zkoušel to manuálně v objektovém modelu předělat Nullable na true ale vyhodí to chybu:

Key Part: 'id' for type detectormodel is not valid. All parts of the key must be non nullable.

Nevíte někdo jak toto vyřešit je to sice Postgres ale u MS databází je to asi stejné.

Děkuji Tom

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pokud je sloupcec Id primarni klic tabulky tak nemuze mit null hodnotu (musi byt unikatni). Pokud neni tak v objektovem modelu lze zmenit id na int? a pak vkladat null hodnotu.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Já bych osobně ponechal Id jako primární klíč s generováním automatického ID a popisovaný Id sloupec bych změnil na InternalId a ten bych povolil NULLable. Chápu totiž, že v tomto konkrétním případě je skutečně Id primární klíč (nebo část PK) a tudíž nelze sloupec definovat jako NULLable.

Jinak s triggery moc nepracuji ale pokud vím, existuje BEFORE INSERT trigger a AFTER INSERT trigger. Pokud je použit až ten AFTER, tak je už stejně pozdě protože proti NOT NULL Id sloupci může přicestovat NULL hodnota a záznam se neuloží.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback