создать объект данных c # с идентификатором GUID? - PullRequest
2 голосов
/ 18 января 2010

возможно ли это вместо увеличения номера идентификатора, вместо этого в коде есть GUID?

Ответы [ 2 ]

5 голосов
/ 18 января 2010

Конечно, проверьте здесь:

http://msdn.microsoft.com/en-us/library/system.data.datatable.primarykey(VS.71).aspx

   // Create a new DataTable and set two DataColumn objects as primary keys.
   DataTable myTable = new DataTable();
   DataColumn[] keys = new DataColumn[1];
   DataColumn myColumn = new DataColumn();
   myColumn.DataType = System.Type.GetType("System.Guid");
   myColumn.ColumnName= "ID";
   // Add the column to the DataTable.Columns collection.
   myTable.Columns.Add(myColumn);
   keys[0] = myColumn;
   // Set the PrimaryKeys property to the array.
   myTable.PrimaryKey = keys;
1 голос
/ 18 января 2010

Один из вариантов - обычно иметь значение первичного ключа как NEWID () для назначения GUID переменной, объявленной как uniqueidentifier тип данных

Другой вариант - иметь последовательныйGUID, использующие эту функцию NEWSEQUENTIALID (), доступную в sqlserver.Однако MSDN заявляет: если конфиденциальность является проблемой, не используйте эту функцию.Можно угадать значение следующего сгенерированного GUID и, следовательно, получить доступ к данным, связанным с этим GUID.

Пример SqlQuery с использованием newid ()

CREATE TABLE cust
(
 CustomerID uniqueidentifier NOT NULL
   DEFAULT newid(),
 Company varchar(30) NOT NULL,
 ContactName varchar(60) NOT NULL, 
 Address varchar(30) NOT NULL, 
 City varchar(30) NOT NULL,
 StateProvince varchar(10) NULL,
 PostalCode varchar(10) NOT NULL, 
 CountryRegion varchar(20) NOT NULL, 
 Telephone varchar(15) NOT NULL,
 Fax varchar(15) NULL
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...