Я пытаюсь сохранить значение в БД на основе Entity Framework через Visual Studio 2013 в С#.
Я должен сэкономить на аукционных данных БД. У каждого аукциона есть свой идентификатор, int, который является его первичным ключом.
Когда я пытаюсь добавить аукцион в БД, я делаю следующее:
using(var c = new AuctionSiteContext(ConnectionString)
{
var auction = new Database.Auction
{
Id = auctionId, //auctionId=0
/*
other stuff
*/
};
c.Auctions.Add(auction);
c.SaveChanges();
}
Проблема в том, что для аукциона Id установлено значение 0, и я проверил его с помощью отладчика, но когда я выполняю saveChanges(); и снова контролируйте значение этого единственного аукциона на сайте, его идентификатор был изменен на 1.
Я честно не понимаю, почему вызов savechanges() может изменить это значение, потому что в столбце аукциона в базе данных нет ограничений, я имею в виду, почему это не может быть просто 0?
Это происходит каждый раз, когда я добавляю аукцион, увеличивая идентификатор на единицу, но все остальные параметры остаются прежними.
изменить: я решил начать последовательность с 0, вот что это значит. Но я даже пытался начать с 1, то есть у первого аукциона id=1, а потом после сохранения стало 2.
Id=0
?? Звучит как плохое архитектурно-дизайнерское решение... - person walther   schedule 06.01.2015