Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak upewnić się, że Linq to Sql nie zastępuje lub nie narusza domyślnych wartości bazy danych, które nie dopuszczają wartości null?

Klasy wygenerowane przez Linq-To-Sql nie pobierają domyślnych ograniczeń wartości.

Może w przyszłości, ale problem polega na tym, że ograniczenia nie zawsze są prostymi wartościami, mogą również być funkcjami skalarnymi, takimi jak GetDate() , więc linq musiałby jakoś umieć je przetłumaczyć. Krótko mówiąc, nawet nie próbuje. Jest to również coś bardzo specyficznego dla bazy danych.

  • Możesz napisać generator kodu do tworzenia klas częściowych encji, w których można wyodrębnić domyślny contriant wartości.
  • Alternatywnie kod warstwy biznesowej może ustawiać wartości domyślne w konstruktorach z pliku xml, a wszystko, co musisz zrobić, to aktualizować plik xml.
  • Zamiast wykonywać pracę w konstruktorach, możesz emulować sql i dodawać wartości domyślne, sprawdzając ChangeSet przed przesłaniem zmian do bazy danych.

Problem, który masz, jest szczegółowo opisany w CodeProject — ustawianie wartości domyślnych dla powiązanych danych LINQ



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. OpenRowSet i OpenDataSet bez uprawnień administratora

  2. Podzapytanie programu SQL Server zwróciło więcej niż 1 wartość. Nie jest to dozwolone, gdy podzapytanie następuje po =, !=, <, <=,>,>=

  3. Klucze obce odwołujące się do wielu tabel

  4. SQL Połącz dane z dwóch różnych zakresów dat w jeden zestaw wyników

  5. SQL Server 2005:jak odjąć 6 miesięcy