Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да гарантирам, че Linq to Sql няма да замени или наруши стойностите по подразбиране на DB, които не могат да бъдат нулеви?

Генерираните от Linq-To-Sql класове не приемат Constriants на стойността по подразбиране.

Може би в бъдеще, но проблемът е, че ограниченията не винаги са прости стойности, те могат да бъдат и скаларни функции като GetDate() , така че linq по някакъв начин ще трябва да знае как да ги преведе. Накратко, дори не се опитва. Освен това е много специфичен за базата данни тип нещо.

  • Можете да напишете генератор на код за създаване на частични класове на обекти, където можете да извлечете constriant на стойността по подразбиране.
  • Алтернативно кодът на вашия бизнес слой може да зададе настройките по подразбиране в конструктори от xml файл и всичко, което трябва да направите, е да поддържате xml файла актуален.
  • Вместо да вършите работата в конструктори, можете да емулирате sql и да добавите стойности по подразбиране, като проверите ChangeSet, преди да изпратите промени в базата данни.

Проблемът, който имате, е описан подробно в CodeProject - Задаване на стойности по подразбиране за 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. Съхранена процедура за анализиране на низ

  2. MS SQL - различен план за изпълнение за различни схеми?

  3. SQL оператор за избор в клауза where

  4. Намерете зависимости в SQL Server:sql_expression_dependencies

  5. Как трябва да работя в този сценарий. Трябва ли да използвам Trigger или Leave on User за управление