c# - titel - wordpress title tag ändern




Wie kann ich die ID der eingefügten Entität im Entity-Framework abrufen? (6)

Bitte beziehen Sie sich auf diesen Link.

http://www.ladislavmrnka.com/2011/03/the-bug-in-storegeneratedpattern-fixed-in-vs-2010-sp1/

Sie müssen die Eigenschaft von StoreGeneratedPattern auf Identität festlegen und dann Ihren eigenen Code versuchen.

Oder Sie können dies auch verwenden.

using (var context = new MyContext())
{
  context.MyEntities.AddObject(myNewObject);
  context.SaveChanges();

  int id = myNewObject.Id; // Your Identity column ID
}

Ich habe ein Problem mit Entity Framework in Asp.net. Ich möchte den Id-Wert erhalten, wenn ich ein Objekt zur Datenbank hinzufüge. Wie kann ich das machen?


Das Objekt, das Sie speichern, sollte nach dem Übertragen von Änderungen in die Datenbank über eine korrekte Id verfügen.


Ich stoße auf eine Situation, wo ich die Daten in die Datenbank einfügen muss und gleichzeitig die primäre ID unter Verwendung von Entity-Framework benötigen. Lösung:

long id;
IGenericQueryRepository<myentityclass, Entityname> InfoBase = null;
try
 {
    InfoBase = new GenericQueryRepository<myentityclass, Entityname>();
    InfoBase.Add(generalinfo);
    InfoBase.Context.SaveChanges();
    id = entityclassobj.ID;
    return id;
 }

Sie können ID nur nach dem Speichern erhalten, stattdessen können Sie eine neue Guid erstellen und vor dem Speichern zuweisen.


Wenn Sie zuerst EF 6.x-Code verwenden

    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public Guid Id { get; set; }

und initialisiert eine Datenbanktabelle, es wird ein gesetzt

(newsequentialid())

innerhalb der Tabelleneigenschaften unter der Überschrift Standardwert oder Bindung, wodurch die ID beim Einfügen eingefügt werden kann.

Das Problem ist, wenn Sie eine Tabelle erstellen und die hinzufügen

[DatabaseGenerated(DatabaseGeneratedOption.Identity)]

Teil später, zukünftige update-Datenbanken werden nicht die (newsequentialid ()) hinzufügen

Um den richtigen Weg zu finden, wischen Sie die Migration ab, löschen Sie die Datenbank und migrieren Sie erneut ... oder fügen Sie einfach (newsequentialid ()) in den Tabellen-Designer ein.


Es ist ziemlich einfach. Wenn Sie DB-generierte IDENTITY (wie IDENTITY in MS SQL), müssen Sie lediglich Entity zu ObjectSet und SaveChanges zu verwandtem ObjectSet SaveChanges . Id wird automatisch für dich ausgefüllt:

using (var context = new MyContext())
{
  context.MyEntities.AddObject(myNewObject);
  context.SaveChanges();

  int id = myNewObject.Id; // Yes it's here
}

Das Entitäts-Framework folgt standardmäßig jedem INSERT mit SELECT SCOPE_IDENTITY() wenn automatisch generierte SELECT SCOPE_IDENTITY() verwendet werden.





entity