Хотя я пометил свой столбец идентификаторов .Identity()
, для сгенерированной схемы базы данных IDENTITY
не присвоено значение true, что вызывает проблемы при добавлении записей. Если я вручную отредактирую схему базы данных (в SQL Management Studio), чтобы столбец Id
был помечен IDENTITY
, все работает так, как я хочу - я просто не могу заставить EF делать это самостоятельно.
Это мое полное отображение:
public class EntryConfiguration : EntityConfiguration<Entry>
{
public EntryConfiguration()
{
Property(e => e.Id).IsIdentity();
Property(e => e.Amount);
Property(e => e.Description).IsRequired();
Property(e => e.TransactionDate);
Relationship(e => (ICollection<Tag>)e.Tags).FromProperty(t => t.Entries);
}
}
Поскольку я использую EF для создания и перестройки базы данных для интеграционного тестирования, мне действительно нужно, чтобы это делалось автоматически ...
EDIT:
Хм ... В комментарии меня попросили дать достаточно кода для его выполнения, поэтому я вырезал и вставил свой код в консольное приложение (чтобы вам не понадобились все мои классы ...), и вдруг он просто сработал , Наверное, я где-то забыл какой-то вызов метода, хотя не смог выяснить, где.
Я опубликую работающий код решения в ответе на это сообщение, на случай, если кто-то другой найдет его.