2015-04-20 4 views
5

Wie erzeuge ich guid für meine Entitäten in meiner App, die von Entity Framework nach sql azure gespeichert werden.Ist es besser guid in meiner App manuell zu generieren oder sql server/azure sql für mich generieren zu lassen?

Im Moment benutze ich Id = Guid.NewGuid(). Ist das richtig?

EDIT

Um zu klären, warum ich dies unten zu fragen habe, ist meine Erklärungen

mir mein Freund, dass SQL Server sagte guid mit "NewID()" erzeugen kann. Im Moment erzeuge ich guid in meiner App mit "Guid.NewGuid()". Welchen sollte ich benutzen? Für mich ist mein aktueller Ansatz bequemer, weil ich den GUID-Wert bereits vor der Speicherung in der Datenbank erhalte. Was ist die Up/Down-Seite jedes Ansatzes?

+0

Ihre Frage könnte einige Verbesserungen verwenden. Sie erhalten eine viel bessere Antwort, wenn Sie dies lesen: http://StackOverflow.com/Help/how-to-ask –

+0

@matt Vielen Dank für Ihre Eingaben. Ich werde versuchen, die Frage zu überarbeiten. – Reynaldi

+0

Wenn Sie Guids als Schlüssel verwenden, werfen Sie einen Blick auf diesen Artikel auf sqlskills.com: http://www.sqlskills.com/blogs/kimberly/guids-as-primary-keys-andor-the-clustering-key/ –

Antwort

5

Es ist wirklich egal, wo Sie die Guid generieren, weil es garantiert in beiden Fällen einzigartig ist. Aber Leute, die von einem Domain Driven Design Hintergrund kommen, schlagen vor, dass das Generieren auf der Seite C# der richtige Ansatz ist, wie Sie es sofort verwenden können, ohne die Datenbank abzufragen, wenn die Notwendigkeit kommt, eine andere Entität mit dieser Guid zu aktualisieren.

+2

Die ID, die Ihnen sofort zur Verfügung steht, ist für mich der Grund, warum ich die IDs in meinem Code erzeuge und nicht die vom Server erzeugten IDs habe. Dies erleichtert theoretisch auch den Wechsel zu einem anderen Datenbankserver. –

+0

Ich stimme zu. Während wir uns auf die Kerngeschäftslogik in C# zubewegen und die Datenbank nur als Datenspeicher verwenden, ist dies zu einem unverzichtbaren Muster geworden. –

+0

Aber ich habe irgendwo gelesen, dass Guid generiert von der Datenbank eine bessere Leistung speziell für Clustering hat. Hast du daran gedacht? – Reynaldi

Verwandte Themen