Установите EntityKey вручную без доступа к базе данных

В моем приложении (сначала база данных) первичные ключи всегда создаются клиентом, а не базовой базой данных.

В Entity Framework v4 каждый Entity если бы это EntityKey свойство, которое можно установить вручную.

Тем не менее, я не могу найти его больше в EF6?

Есть ли какая-то конкретная причина, почему?

Я не хочу звонить ctx.SaveChanges() только иметь Entity's Ключ, установленный как это означает, вызов к базе данных.

Мне также интересно, почему ObjectContext.CreateEntityKey ушел?!

1 ответ

Если вы используете POCO - вот пример того, как это можно сделать

public class ChronosItem 
{
    [Column, Key, Required, MaxLength(26), DatabaseGenerated(DatabaseGeneratedOption.None)]
    public string Id { get;  set; }
    ....

Если вы не можете настроить свои объекты

переопределить метод "OnModelCreating" в вашем контексте.. как это..

protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Entity<ChronosItem >()
                .HasKey(p => p.Id)
                .Property(p => p.Id)
                .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
Другие вопросы по тегам