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

Как мога да принудя рамката на обекта да вмъква колони за идентичност?

EF 6 метод, като използвате статията msdn:

using (var dataContext = new DataModelContainer())
using (var transaction = dataContext.Database.BeginTransaction())
{
    var user = new User()
    {
        ID = id,
        Name = "John"
    };

    dataContext.Database.ExecuteSqlCommand("SET IDENTITY_INSERT [dbo].[User] ON");

    dataContext.User.Add(user);
    dataContext.SaveChanges();

    dataContext.Database.ExecuteSqlCommand("SET IDENTITY_INSERT [dbo].[User] OFF");

    transaction.Commit();
}

Актуализация: За да избегнете грешка „Трябва да бъде посочена изрична стойност за колона за идентичност в таблица „Име на таблица“ или когато IDENTITY_INSERT е настроен на ON или когато потребител на репликация вмъква в колона за идентичност НЕ ЗА РЕПЛИКАЦИЯ“, трябва да промените стойността на StoreGeneratedPattern свойство на колоната за идентичност от Идентичност до Няма в дизайнер на модели.

Забележка, промяната на StoreGeneratedPattern на None няма да успее да вмъкне обект без посочен идентификатор (нормален начин) с грешка „Не може да се вмъкне изрична стойност за колона за идентичност в таблица „Име на таблица“, когато IDENTITY_INSERT е зададен на OFF“.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да върнете всички ненадеждни ограничения CHECK в SQL Server (пример за T-SQL)

  2. Как да получите дата във формат ГГГГ-ММ-ДД от TSQL поле за дата и час?

  3. Създайте функция с таблично стойности с множество оператори (MSTVF) в SQL Server

  4. Как да напиша UTF-8 знаци с помощта на групово вмъкване в SQL Server?

  5. LINQ to SQL Take без пропускане Причинява множество SQL изрази