У меня есть таблица, содержащая уникальный идентификатор, который по умолчанию имеет значение 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#
Место общения программистов C#
1716441825
Anonymous
У меня есть таблица, содержащая уникальный идентификатор, который по умолчанию имеет значение 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);
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78517865/inserting-a-guid-into-uniqueidentifier-field-in-sql-server-results-in-empty-gu[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия