cevap

10

Evet, Anahtar özelliğinizi haritalandırmalısınız. Eğer böyle DbContext türetilmiş sınıf tanımlayabilirsiniz Sonra

public class MyEntity 
{ 
    public virtual Guid Key { get; set; } 
    ... 
} 

:

public class Context : DbContext 
{ 
    public DbSet<MyEntity> MyEntities { get; private set; } 

    public Context() 
     : base("connection") 
    { 
     MyEntities = Set<MyEntity>(); 
    } 

    protected override void OnModelCreating(ModelBuilder modelBuilder) 
    { 
     base.OnModelCreating(modelBuilder); 

     modelBuilder.Entity<MyEntity>().HasKey(e => e.Key); 
     modelBuilder.Entity<MyEntity>() 
        .Property(e => e.Key) 
        .HasDatabaseGeneratedOption(DatabaseGenerationOption.Identity); 

     // Other mapping 
    } 
} 

Veya sadece Veri Açıklamalar ile varlığınızı tanımlayabilirsiniz:

public class MyEntity 
{ 
    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public virtual Guid Key { get; set; } 
    ... 
} 

gibi Diyelim ki bir varlık olduğunu varsayalım Düzenleme:

Eğer eşleme mevcut veri tabanı ile kullanılıyorsa, ancak EF kodunun ilk sizin için veritabanı oluşturmasını istiyorsanız, normal (sıralı olmayan) kılavuzları kullanacaktır! Veritabanı üretimi durumunda olası çözümler için Check this question.