У меня есть таблица, содержащая уникальный идентификатор, который по умолчанию имеет значение 00000000-0000-0000-0000-000000000000 (Guid.Empty) через значение по умолчанию в SQL Server, когда значение не указано.
С помощью PetaPoco я создаю GUID и использую db.Insert() для вставьте мой объект.
Мой класс, представляющий эту таблицу, выглядит следующим образом:
[PetaPoco.TableName("my_table")]
[PetaPoco.PrimaryKey("my_id")]
public class FaveColors
{
[PetaPoco.Column(Name = "my_id")]
public int myId { get; set; }
[PetaPoco.Ignore]
public string myFavouriteColor { get; set; }
[PetaPoco.Column(Name = "my_guid")]
public Guid myGuid { get; set; }
}
Единственный другой совет, который я могу найти, касается исключительно того, когда UniqueIdentifier является PK, и в этом случае вы отключите автоматическое приращение... Однако в моем В данном случае это не ПК.
Что я могу сделать, чтобы на самом деле отправить правильный GUID через PetaPoco в базу данных?
РЕДАКТИРОВАТЬ: Некоторые из вы просили код, показывающий, как я создаю объект, который вставляю в БД, вот пример (хотя и не идеальный, но он отражает то, что я делаю):
using System.DirectoryServices;
using PetaPoco;
public struct FaveColorInfo
{
public int myId;
public string myFavouriteColor;
public Guid myGuid;
}
private static Guid GetGuidForId(int id)
{
var ldapRoot = new DirectoryEntry("LDAP://DC=internal,DC=domain");
var adSearch = new DirectorySearcher(ldapRoot);
adSearch.Filter = "(&(objectClass=user)(SAMAccountName=" + id + "))"; //Not really how we do sAMAccountNames but works as example
adSearch.PropertiesToLoad.Add("ObjectGUID");
var result = adSearch.FindOne();
return new Guid((byte[])result.Properties["objectguid"][0]); //e.g: 8c700816-60a4-4fba-bf4f-d8deaddba160
}
//db is a PetaPoco Database object (PetaPoco.Database)
private static void InsertFaveColor(int id, string faveColor, Database db)
{
var uGuid = userService.GetGuidForId(id);
var faveColorInfo = new FaveColorInfo
{
myId = id,
myFavouriteColor = faveColor,
myGuid = uGuid
}
db.Insert(faveColorInfo);
}
Подробнее здесь: https://stackoverflow.com/questions/785 ... n-empty-gu
Вставка GUID в поле «uniqueidentifier» в SQL Server приводит к пустому guid. ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Вставка GUID в поле «uniqueidentifier» в SQL Server приводит к пустому guid [закрыто]
Anonymous » » в форуме C# - 0 Ответы
- 77 Просмотры
-
Последнее сообщение Anonymous
-