Фреймворк и идентификаторы холдинга - PullRequest
0 голосов
/ 03 июля 2018

Я работаю с Entity Framework и C # и имею следующую проблему. Мне нужно связать объекты в моей программе с сущностью из базы данных. Так если у меня есть объект A и объект B, я сохранил идентификатор B в A. И тогда я делать вещи с А и в конечном итоге снова захотеть получить доступ к В. Я сделал это так:

using (var context = new TestModelContainer()) {
    var B = context.BSet.FirstOrDefault(b=>b.Id == A.BId);
    // do stuff with B
}

Но мне интересно, если это правильное решение, потому что, если я как-то удаляю B из базы данных и добавления новых объектов B, в конце концов, другой B получает тот же идентификатор как оригинал B хранится в A.

Какова лучшая практика чего-то подобного?

1 Ответ

0 голосов
/ 03 июля 2018

Хорошая новость в том, что не так работает генерация личности. Это счетчик, старые номера не используются повторно.

Однако, возможно, вы захотите не использовать идентификаторы базы данных для этой цели, а использовать GUID (или порядковый номер), хранящийся в отдельном столбце. Идентификационные данные базы данных считаются конфиденциальной информацией и могут не пригодиться в будущем, когда вы захотите объединить базы данных (например).

Синхронизация данных действительно может быть немного болезненной, когда вы должны учитывать удаления, но это то, что вы получаете за хранение данных, связанных с данными вне базы данных: -).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...