Windows Azure Cloud Storage ermöglicht es Ihnen bereits ab 0,10€ pro GB/Monat die Vorteile der Cloud zu nutzen.
Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1550 | Anzahl registrierter User: 1839 | Besucher online: 13
Hauptmenü
Home
Top Ten
Zufälliger Snippet
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social

RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss ASP.NET
Partner
Member of Microsoft Community Leader/Insider Program (CLIP)

Sequential GUID


Autor: Günther Foidl
Sprache: C#
Bewertung:
noch nicht bewertet
Anzahl der Aufrufe: 5893
  
Kick it on dotnet-kicks.de  

Beschreibung:

GUIDs werden in Datenbank oft als ID verwendet. Wird die ID-Spalte indiziert erfolgt beim Einfügen von neuen Werten eine Neustrukturierung der Daten.

Deshalb gibt es im SQL Server 2005 (und neuer) die Methode NEWSEQUENTIALID.

Wird zB LINQtoSQL verwendet und die IDs auf Clientseite generiert wäre es nützlich auch NEWSEQUENTIALIDs zu erzeugen.
Nachfolgend beschrieben Klasse erstellt eine GUID die größer ist als ein je auf dieser Maschine erstellte GUID.


Abgelegt unter: GUID, LINQ, ID.



C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
using System;

namespace gfoidl.Tools
{
	public class Guid
	{
		#region API
		[System.Runtime.InteropServices.StructLayoutAttribute(
			System.Runtime.InteropServices.LayoutKind.Sequential)]
		private struct GUIDDATA
		{
			public int Data1;
			public short Data2;
			public short Data3;

			[System.Runtime.InteropServices.MarshalAsAttribute(
				System.Runtime.InteropServices.UnmanagedType.ByValArray,
				SizeConst = 8)]
			public byte[] Data4;
		}

		[System.Runtime.InteropServices.DllImportAttribute("rpcrt4.dll")]
		private static extern int UuidCreateSequential(out GUIDDATA Uuid);
		#endregion
		//---------------------------------------------------------------------
		/// <summary>
		/// Erstellt eine GUID
		/// </summary>
		/// <returns>
		/// GUID
		/// </returns>
		public static System.Guid NewID()
		{
			return System.Guid.NewGuid();
		}
		//---------------------------------------------------------------------
		/// <summary>
		/// Erstellt eine GUID die größer ist als ein je auf dieser
		/// Maschine erstellte GUID
		/// </summary>
		/// <returns>
		/// GUID
		/// </returns>
		public static System.Guid NewSequentialID()
		{
			GUIDDATA guiddata;

			if ((UuidCreateSequential(out guiddata) & 0x80000000) != 0) // FAILED(hr)  
				throw new InvalidOperationException();

			return new System.Guid(
				guiddata.Data1,
				guiddata.Data2,
				guiddata.Data3,
				guiddata.Data4);
		}
	}
}
Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)



Diese Snippets könnten für Sie interessant sein:
[C#] Guid´s als weltweit eindeutige ID
[C#] Guid in allen Formaten erstellen
[C#] kontrolliert ob String eine gültige GUID ist
[C#] Passwort Generator aus GUID
[C#] Nullable Guid
[C#] GUID des aktuellen Assembly ermitteln
[C#] Dateien suchen mit LINQ
[C#] Generischer Converter für CSV Dateien
[C#] LINQ kumulierte Summe
[C#] LINQ Rang im Ergebnis
[C#] LINQ-Erweiterung für eindeutige Liste
[C#] Search Plugin-DLLs with one line
[C#] Intellisense Unterstützung für XML Dateien für LINQ
[VB.NET] DataGridView Databinding mit LINQtoSQL
[VB.NET] Master-Detail Ansicht auf SQL Server-Daten mit LINQ-to-SQL
[C#] Controls gleichen Typs von einem Container in Winform holen
[C#] LINQ to Twitter via kostenloser 3rd Party Library
[C#] SQL Server Daten in Exel-Datei exportieren mit LINQ
[C#] LINQ to Flickr via kostenloser 3rd Party Library nutzen
[VB.NET] ChangeConflicts in LINQ-To-SQL behandeln
[C#] LINQ-Ergebnis in DataTable kopieren
[C#] Listen effektiv in ein Datenbankfeld speichern
[C#] Auf Daten eines SAP-Systems in Silverlight zugreifen
[C#] Kleinsten key in einem Dictionary mit LINQ abfragen
[C#] Daten aus SAP-System als ADO.NET Data Service bereitstellen
[C#] Dateisystem Abfragen mit LINQ erstellen
[C#] XML generieren mit Linq to XML
[C#] Mit LINQ und Join Collections zusammenführen
[C#] Dateien mit bestimmter Extension rekursiv in Array einlesen
[C#] Mit LINQ to SQL auf eine Datenbank zugreifen
[C#] Mit LINQtoXML XML Dateien erzeugen bzw. abfragen
[C#] CPU ID ermitteln

schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.