Linq-to-SQL ignoriert SQL Server-Standardwert
Bei der Verwendung von Linq-to-SQL, das hinzufügen einer Spalte zu einer vorhandenen Tabelle, und setzen Sie ein Standard-Wert auf die neue Spalte, es scheint, dass Linq to SQL ignoriert den default-Wert.
Hat sonst noch jemand erlebt dieses Verhalten? Gibt es eine Möglichkeit, es zu beheben, so dass Linq-to-SQL oder SQL Server stellt automatisch den default-Wert?
Die Spalte habe ich Hinzugefügt, war der Typ Bit, mit einem default-Wert auf 1 gesetzt.
- Duplizieren: stackoverflow.com/q/201706/11683 (nicht an der Abstimmung zu schließen, beide sind gleichermaßen nützlich).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich nun endgültig behoben dies durch ein Beispiel aus dieser blog.
Ich brauchte, um diese übergeben zu einem teilweisen datacontext-Klasse, das standardmäßig automatisch überschrieben werden jedes mal, wenn Sie etwas ändern in der dbml.
Set Auto-Generiert-Eigenschaft auf True.
Gehen Sie in den designer und wählen Sie "Auto-Sync" - Wert von "OnInsert". Dies wird die sync-Wert, wenn der Datensatz in die Datenbank eingefügt.
null
als der Wert der Spalte, wenn die richtige Maßnahme wäre, um nicht die Liste überhaupt einen Wert in der Abfrage. Also, wenn die Spalte keine null-Werte zulassen, erhalten Sie die "kann nicht insert null into a non-nullable column" Fehler.Habe ich diese gesehen. Was Sie tun können, ist zu gehen in die l2sql designer, zeigen Sie die Eigenschaften für die Tabelle-Spalte einen Standardwert hat. Es ist eine Eigenschaft "Auto increment Wert" setzen, die auf true.
Dieser gleichen Wert auf true gesetzt ist, wird automatisch für die Identitätsspalte automatisch, wie in diesem Fall SQL Server ist die Erstellung von Datensatz-IDs.
Stand ich vor dem gleichen problem der boolean-Datentyp mit Standard-als falsch und nicht die Aktualisierung, die Wert
Also, wenn ich die Datenbank Tabelle, die ich dort gefunden wurde ist kein Primärschlüssel festgelegt wurde, also wenn ich wurde der Primärschlüssel aktualisiert wurde finden.
so überprüfen Sie eine Tabelle, wenn Sie den Primärschlüssel oder nicht.
Wenn Sie jemals brauchen werden, um den Wert zu ändern in Ihrem eigenen code (zB. eine Art Tabelle Standardwert), dann verwenden Sie nicht "Auto increment Wert" oder erhalten Sie diese später, wenn Sie versuchen zu aktualisieren.
Ich lieber auf solche Werte, wenn ich das Objekt erstellen, mit einem fallback in
OnCreated
wie beschrieben von anderen hier.