sql >> Database teknologi >  >> RDS >> Oracle

Oracle ODP.Net og EF CodeFirst - SaveChanges-fejl

Ideen med Attach() metoden er, at du har en enhed, der vides at være i DB, men ikke spores af denne kontekst, ikke? Mit spørgsmål til dig er, ved du med sikkerhed, at denne rolle her:

Role r = new Role { ID = 1, Name = "Members" };

er der noget der allerede eksisterer? Hvis det ikke gør det, tror jeg ikke, at du vil bruge

ctx.Roles.Attach(r);

det er snarere, at du ville skrive:

ctx.Roles.Add(r);

og så kunne man vende sig om og skrive

User u = new User {
    Login = login,
    Password = password,
    Status = 1,
};

ctx.Users.Add(u);
u.Roles.Add(r);
ctx.SaveChanges();

Problemet med dit første eksempel er, at denne nye rolle er virkelig ny i DB'en, så at vedhæfte den er ikke det, du ønsker at gøre, men du vil gerne tilføje den.

Og det enkelte kald til ctx.SaveChanges() burde fungere fint her.




  1. Hash deltage i Oracle med eksempel

  2. Få tabelkolonnenavne i MySQL?

  3. connect ECONNREFUSED - node js , sql

  4. Genererer sql-indsæt til Oracle