2016-09-26 1 views
0

Datenbank-erste Lösung.Der Wert NULL kann nicht in Spalte 'Id' (Datenbank zuerst) eingefügt werden.

Ich verwende zwei Tabellen User und Profile. Sie verwenden beide uniqueidentifier (SQL Server) als ihren Primärschlüssel. Die Art, wie ich User lassen erhält automatisch ist es eigener guid id aus war:

  1. meine edmx Datei öffnen.

  2. Klicken Sie mit der rechten Maustaste auf die GUID-Spalte für Benutzer -> Eigenschaften -> ändern Sie das StoreGeneratedPattern in Identity.

Arbeitete wie ein Charme. Jetzt habe ich versucht, mit Review dies ebenfalls zu tun, aber ich erhalte die folgende Störung jedes Mal, Ich versuche, eine neue Zeile zu erstellen:

kann nicht den Wert NULL in Spalte ‚Id‘ einfügen, Tabelle ‚xxxx .dbo.Profile '; Spalte erlaubt keine Nullen. INSERT schlägt fehl. Die Anweisung wurde beendet.

Wenn ich nicht Identity für StoreGeneratedPattern für Profile verwenden wird es nicht eine eindeutige ID, anstatt nur Bündel von Nullen, den duplizierten Fehler führen erzeugen, wenn ich versuche, wieder eine neue Zeile zu erstellen.

Warum funktioniert der Benutzer gut, aber nicht Profile?

Ich folgte dieser Anleitung guide für beide Tabellen.

+0

Ihre Fehlermeldung verweist auf eine Tabelle namens "Profil", nicht "Profil". Ist es möglich, dass Sie die Tabelle oder die Klasse, auf die sie verweist, falsch geschrieben haben? –

+1

Sie können DatabaseGeneratedOption.Identity nicht für Uniqueidentifier (Guid) Spalten verwenden. GUID-Spalten in DBMS werden niemals automatisch inkrementiert, und da Sie StoreGeneratedPattern in Identity geändert haben, wird EF sie auch nicht als Wert übergeben, da erwartet wird, dass sie von DBMS angegeben wird. – DevilSuichiro

+0

, damit es funktioniert, ändern Sie StoreGeneratedPattern zu None und legen Sie gültige Guid-Werte fest, oder ändern Sie den Datentyp. – DevilSuichiro

Antwort

1

Wie @Gert Arnold in Kommentaren erwähnt, habe ich vergessen, newsequentialid() für Profile Tabelle in SQL Server hinzuzufügen. Nachdem ich das gemacht hatte, konnte ich endlich einzigartige Guids mitgenerieren.

Sie können mehr über diese Methode here lesen. Dazu gehören auch Techniken für Code-First.

Verwandte Themen