sql >> Databáze >  >> RDS >> Sqlserver

Jak mohu donutit framework entity vložit sloupce identity?

EF 6 pomocí článku 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();
}

Aktualizace: Abyste se vyhnuli chybě „musí být zadána explicitní hodnota pro sloupec identity v tabulce 'TableName', buď když je IDENTITY_INSERT nastaveno na ON, nebo když uživatel replikace vkládá do sloupce identity NOT FOR REPLICATION“, měli byste změnit hodnotu StoreGeneratedPattern vlastnost sloupce identity z Identity na None v návrháři modelů.

Poznámka, změna StoreGeneratedPattern na None selže při vkládání objektu bez zadaného id (normálním způsobem) s chybou "Nelze vložit explicitní hodnotu pro sloupec identity v tabulce 'TableName', když je IDENTITY_INSERT nastaveno na OFF".



  1. Jak zajistit, aby rozšíření nebylo přemístitelné?

  2. Vytváření aktivačních událostí auditu na serveru SQL Server

  3. Nemohu nastavit více obrázků v zobrazení mřížky?

  4. Jak mohu použít jeden fond připojení mssql napříč několika trasami ve webové aplikaci Express 4?