4 votes

Comment obtenir de multiples valeurs d'identité insérées dans Entity Framework

Je suis en train d'insérer des valeurs dans la table QueryList

    [QueryID] [WorkItemID] [RaisedBy]
       1        123           xyz
       2        234           abc

QueryID est une colonne Identity.

Je suis en train d'utiliser une boucle foreach et d'insérer plusieurs valeurs en même temps. Ma question est de savoir comment obtenir toutes les nouvelles valeurs Identity insérées dans Entity Framework 3.5

Voici mon code

using (TransactionScope currentScope = new TransactionScope())
{
    Query newQuery = new Query(); 
    foreach (long workItemId in workItemID)
    {
        newQuery = new Query();
        ...

        currentScope.Complete();
        success = true;           
    }
 }
 entityCollection.SaveChanges(true);

 int  QueryID = newQuery.QueryID; //Cela me donne la dernière valeur d'Identity

3voto

p.s.w.g Points 81433

Vous devez suivre chaque objet Query nouvellement créé séparément. Je suggère d'utiliser une List pour plus de simplicité :

using (TransactionScope curentScope = new TransactionScope())
{
    List newQueries = new List(); 
    Query newQuery = new Query();
    newQueries.Add(newQuery);
    foreach (long workItemId in workItemID)
    {
        newQuery = new Query();
        newQueries.Add(newQuery);
        ...
        curentScope.Complete();
        success = true;           
    }
}
entityCollection.SaveChanges(true);

var queryIDs = newQueries.Select(q => q.QueryID);

Note latérale : Dans votre exemple de code, vous avez créé un objet Query en dehors de la boucle for, mais ne l'avez pas du tout utilisé. Cela peut être simplement parce que c'est un exemple, mais si vous l'utilisez ou l'insérez dans votre contexte de données, ne le créez pas.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X