2009-08-12 3 views
0

Ich verwende GUIDs als PK für meine Entitäten. Da EF die SQL-Anweisung newid() nicht unterstützt, erzwinge ich in meinen Erstellungsmethoden eine Guid.NewGuid().Entity Frmwk pb: Suche nach 'added' Entitäten im aktuellen Kontext

Hier ist mein Problem: Ich habe eine Tabelle mit einer Clustered Unique Constraint (2 Strings, nicht PK).

ich einige Codes in den gleichen EF Kontext ausgeführt wird, welche Operationen und fügt/Links Einheiten usw.

Ist es möglich, die Suche nach einem Unternehmen in ‚Added‘ Zustand in meinem Zusammenhang perfoms?; das heißt, das ist in meinem Kontext, aber noch nicht in meiner DB eingefügt.

Um die SQL-Unique-Einschränkung zu vermeiden, muss ich wissen, ob die Entität bereits im Kontext "in Warteschlange" ist und sie erneut verwenden, anstatt eine neue Guid (... und eine andere Entität zu erstellen :()

Antwort

1

diesen Beitrag me :) gespeichert:

http://geekswithblogs.net/abhijeetp/archive/2009/07/23/retrieving-added-entities-from-the-objectstatemanager-to-avoid-duplication.aspx

var stateEntries = context.ObjectStateManager.GetObjectStateEntries(EntityState.Added | EtityState.Modified | EntityState.Unchanged); 
    var roleEntityEntries = stateEntries.Select(s => s.Entity).OfType<Role>(); 
    roleEntity = roleEntityEntries.FirstOrDefault(r => r.RoleName.Trim().ToLower() == roleName.Trim().ToLower()); 
    if (roleEntity == null) 
    { 
     return new Role { RoleName = roleName }; 
    } 
Verwandte Themen