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.

İlgili konular