Bir öğeyi PK olarak sıralı bir kılavuza sahip bir tabloya eşlemek için EF4 kullanmak istiyorum. Bu gönderiye göre http://leedumond.com/blog/using-a-guid-as-an-entitykey-in-entity-framework-4/ EF4 bunu destekler ancak edmx eşlemesiyle. EF4 Kodunu İlk Kullanırken Sunucu Oluşturulan Kılavuzları Kullanmanın Bir Yolu Var mı Ve Varsa Nasıl?Varlık Çerçeve Kodunu Kullanırken SQL Server Sıralı Kılavuzu Bir İlk Olarak Kılavuz İlkesi
5
A
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.