2016-01-18 15 views
6

Ben Ef6 ayrı bir sınıfa akıcı API yapılandırmalarını nasıl düzenleneceğine tanıdık ama nasıl bu EF7 ile elde edilir içine Akıcı API yapılandırmaları Organize?Varlık-çerçeve-7 ayrı sınıfa

ModelConfigurations.cs

public class ModelConfigurations : EntityTypeConfiguration<Blog> 
{ 
    ToTable("tbl_Blog"); 
    HasKey(c => c.Id); 
// etc.. 
} 

ve

protected override void OnModelCreating(DbModelbuilder modelBuilder) 
    { 
      modelBuilder.Configurations.Add(new ModelConfigurations()); 
// etc... 
    } 

EF7 ben çözmek olamaz OnModelCreating() onu aramak için: Burada

Ef6 ile bunu nasıl bir örnektir EntityTypeConfiguration? Akıcı API çağrılarını ayrı bir sınıfa uygulamanın doğru yolu nedir?

+1

http://stackoverflow.com/questions/26957519/ef-7-mapping-entitytypeconfiguration –

+0

Sana * Mevcut * veritabanından Modeli oluşturmak için 'dnx ef DBContext scaffold' kullanmak tavsiye (([cevap] bakınız Ayrıntılar için http://stackoverflow.com/a/34457974/315935). Kaynak olarak yeterince karmaşık veritabanı alırsanız, EF7'de akıcı API'yi nasıl kullanacağınıza dair çok iyi örnekler alacaksınız. Ekstrenizdeki kaynağını: – Oleg

cevap

5

bu deneyin:

public class EntityPOCO { 
    public int Id { get; set; } 

    public static OnModelCreating(DbModelBuilder builder) { 
     builder.HasKey<EntityPOCO>(x => x.Id); 
    } 
} 

... 

public class EntityContext : DbContext { 
    public DbSet<EntityPOCO> EntityPOCOs { get; set; } 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) { 
     base.OnModelCreating(modelBuilder); 
     EntityPOCO.OnModelCreating(modelBuilder); 
    } 
} 

bir adım gidiyor:

public class BlogConfig 
{ 
    public BlogConfig(EntityTypeBuilder<Blog> entityBuilder) 
    { 
     entityBuilder.HasKey(x => x.Id); 
     // etc.. 
    } 
} 

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

    new BlogConfig(modelBuilder.Entity<Blog>()); 
} 
+0

Bu yöntem artık –

1

Ne ben genellikle tüm varlık sınıfları için yapmak benim bağlam uygulanmasında benim OnModelCreating yöntemle çağrılan statik bir yöntem sağlar olduğu Dahası, işlemi otomatik hale getirebilir ve öznitelik kullanarak anında sinif sınıfını oluşturabilirsin. Bu şekilde sadece POCO'larla uğraşmanız ve içeriğe asla dokunmanız gerekmez.

+0

uzakta EF7 – Szer

+0

@Szer ile gidecek Öznitelikler'i işe doens't? Ben nitelikleri görmek için/veri ek açıklamaları olacaktır (https://github.com/aspnet/EntityFramework/wiki/Roadmap) –

+0

Ben .NET niteliklerini atıfta bulundu, hiçbir EF veri ek açıklamalar. –