Я пытаюсь сохранить значение в базе данных на основе Entity Framework через visual studio 2013 в C#.Неожиданное изменение значения после savechanges()
Мне нужно сохранить данные на аукционе DB. Каждый аукцион имеет свой собственный id, int, который является его основным ключом.
Когда я пытаюсь добавить аукцион в БД я сделать следующее:
using(var c = new AuctionSiteContext(ConnectionString)
{
var auction = new Database.Auction
{
Id = auctionId, //auctionId=0
/*
other stuff
*/
};
c.Auctions.Add(auction);
c.SaveChanges();
}
Проблема заключается в том, что auctionId установлен в 0, и я проверил это с помощью отладчика, но когда я делать SaveChanges() ; и снова контролировать стоимость этого аукциона на сайте, его Идентификатор был изменен на 1.
Я не понимаю, почему savechanges() invokation может изменить это значение, поскольку в столбце аукциона нет ограничений на столбец аукциона db, я имею в виду, почему это не может быть просто 0?
Он делает это каждый раз, когда я добавляю аукцион, увеличивая на единицу идентификатор, но все остальные параметры остаются неизменными.
Редактировать: Я решил начать последовательность с 0, вот что это значит. Но я даже попытался начать с 1, а это значит, что на первом аукционе есть id = 1, но затем после savechanges это стало 2.
Что означает 'Id = 0'? Звучит как плохое архитектурное/дизайнерское решение ... – walther