Я видел много сообщений и ответов о том, как пометить поле как столбец идентичности. Многие из них устарели и ориентированы на более старые версии Entity Framework.Как правильно помечать столбцы идентификаторов с помощью Entity Framework 6.1?
Некоторые ресурсы говорят мне использовать атрибут на поле:
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
Другие ресурсы говорят мне, чтобы добавить этот код в OnModelCreating
метод:
modelBuilder.Entity<User>().Property(u => u.ID).HasDatabaseGeneratedOption(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.Identity);
Какой я должен использовать? Во-первых, во-вторых, и то, и другое, не имеет значения, или что-то еще?
Либо, ваш выбор. Я использую смесь из двух: атрибутов для простых вещей, подобных этому, и «modelBuilder» для более сложных сценариев, которые атрибуты не покрывают. Они оба одинаково важны, и вы увидите, что под обложками (соглашения EF) атрибуты используются, чтобы сказать 'modelBuilder', что делать. – Amy
@ Ами спасибо. Я думаю, что я возьму подход атрибутов, поскольку он дает более чистый код. Не могли бы вы оставить свой комментарий в качестве ответа, чтобы я мог его принять? –
Является ли это свойство основным ключом? – CodeNotFound