Я разрабатываю свое приложение ASP.NET MVC4 с использованием EF Code-first, а также im, используя функцию Migrations. У меня есть конкретная сущность, и я хочу установить явные значения id по некоторым причинам. Как я могу это сделать? Я пытался отметить свойство идентификатора с атрибутом, как это:Исключительные значения идентификатора с использованием EF Code-first и миграции
public class NewsSource
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Id { get; set; }
public string Title { get; set; }
public string WebSiteUrl { get; set; }
}
Тогда я добавить соответствующее перемещение, удаление базы данных и попытаться обновить базы данных с помощью метода Seed(), как это:
context.NewsSources.AddOrUpdate(x => x.Title,
new NewsSource {Id = 654, Title = "ABC", WebSiteUrl = @"http://www.abc.com/"},
new NewsSource {Id = 22, Title = "XYZ", WebSiteUrl = @"http://XYZ.ru/"});
И ив получил это ошибка: «Невозможно вставить явное значение для столбца идентификатора в таблице« Источники новостей », если для параметра IDENTITY_INSERT установлено значение« ВЫКЛ ». Как я могу установить identity_insert в ON, используя EF и миграции. Как я понял из многих тем, это невозможно, и я должен использовать прямые SQL-команды. Я ошибаюсь?
Я думаю, вы не ошибаетесь. До тех пор, пока вы добавите аннотацию '[Key]', EF захочет обработать этот идентификатор самостоятельно. Возможно, вам стоит рассмотреть другую структуру вашего стола. Возможно, у меня не так, но мое исследование дало мне тот же результат, что и ваш: это невозможно. – Atlasmaybe