sql >> Database teknologi >  >> RDS >> Sqlserver

Hvordan kan jeg tvinge entity framework til at indsætte identitetskolonner?

EF 6 metode ved at bruge msdn-artiklen:

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();
}

Opdatering: For at undgå fejlen "Eksplicit værdi skal angives for identitetskolonnen i tabel 'Tabelnavn', enten når IDENTITY_INSERT er sat til ON, eller når en replikeringsbruger indsætter i en IKKE TIL REPLIKATION identitetskolonne", bør du ændre værdien af ​​StoreGeneratedPattern egenskab af identitet-kolonnen fra Identitet til Ingen i model designer.

Bemærk, ændring af StoreGeneratedPattern til None vil mislykkes ved indsættelse af objekt uden specificeret id (normal måde) med fejlen "Kan ikke indsætte eksplicit værdi for identitetskolonnen i tabel 'Tabelnavn', når IDENTITY_INSERT er sat til FRA".



  1. hvad er escape-sekvensen for bindestreg (-) i PostgreSQL

  2. Får fejl ved tilknytning af PostgreSQL LTREE-kolonnen i dvale

  3. Opbygning af en MySQL eller MariaDB Database Cold Standby på Amazon AWS

  4. Sqlplus login fejl ved brug af bash variabler:SP2-0306:Ugyldig indstilling