2017-05-04 3 views
0

Ich habe ein sehr seltsames Ereignis beim Speichern von Daten. Meine Tabelle verwendet Guid als primäre ID, und aus irgendeinem Grund zeichnet sie die gleiche Guid für alle neuen Einträge auf.Keine eindeutige GUID erzeugen

Tabelle Konstrukte

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

    [Required] 
    public string Title { get; set; } 

    public DateTime? CreatedOn { get; set; } 
    public DateTime? ModifiedOn { get; set; } 
} 

public class Track 
{ 
    public Track() 
    { 
     Checkpoints = new List<Checkpoint>(); 
    } 

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

    [Required] 
    public List<Checkpoint> Checkpoints { get; set; } 

    public DateTime? CreatedOn { get; set; } 
    public DateTime? ModifiedOn { get; set; } 
} 

Code-Schnipsel, die in der Spur gespeicherten Liste von Modell zu neuen Checkpoints umwandelt.

var trackObject = new Track(); 

var checkpointList = model.Checkpoints.ConvertAll(x => new Checkpoint {Title = x.Title}); 

trackObject.Checkpoints.Add(checkpointList); 

db.Track.Add(trackObject); 
await db.SaveChangesAsync(); 

Checkpoint Tabelle Ergebnis (i omited den Fremdschlüssel zeigendes Objekt zu verfolgen):

ID          | TITLE | CREATED_ON 
-------------------------------------------------------------------------------- 
c3451b2b-bb30-e711-b867-f01faf23929d | First | 4/05/2017 11:16:50 AM  
c5451b2b-bb30-e711-b867-f01faf23929d | Second | 4/05/2017 11:16:50 AM 
c6451b2b-bb30-e711-b867-f01faf23929d | Third | 4/05/2017 11:16:50 AM  
c7451b2b-bb30-e711-b867-f01faf23929d | Sprint | 4/05/2017 11:16:50 AM  
c8451b2b-bb30-e711-b867-f01faf23929d | Home | 4/05/2017 11:16:50 AM  
c9451b2b-bb30-e711-b867-f01faf23929d | Finish | 4/05/2017 11:16:50 AM 

Da alle ID-Felder gleich gesehen werden kann. Wo ist der Fehler im Code?

+1

Haben Sie vergessen, das Attribut [Taste] auf der Id zu setzen? – Lenny32

+0

Sie sind nicht gleich. Sie sind alle im ersten Teil unterschiedlich. Dies liegt daran, dass es sich um eine SequentialGuid handelt. –

Antwort