2016-03-24 18 views
1

Birden çok şemaya sahip varolan bir veritabanıyla çalışıyorum. Ayrıca, farklı şema duplicatate tablo isimleri. Kod İlk dağıtım bir seçenek değildir.Varlık Framework Veritabanı ilk çoklu şemaları yinelenen tablo adları

Edmx'i oluştururken, birden çok sorunla karşılaşıyorum, ancak endişelendiğim ana konuya adlandırma kuralı - Şema adı dbo olmadıkça şema adıyla tüm varlıkları öneklemek istiyorum. Örneğin, hem amp şemasında hem de dbo şemada bir Kişi tablosum var, iki öğeye sahip olmak istiyorum - emp_Person and Person.

Önek eklemenin mümkün olduğunu biliyorum (codeplex numaralı telefondan bir örnek buldum) ancak her zaman aynı öneki her zaman uygulayacak gibi görünüyor.

Herhangi bir öneri veya bağlantı var mı?

+0

Bkz Tablo", "Şema"); Edmx eşdeğerinin ne olduğundan emin değil. –

+0

Şema adıyla önekleme seçeneğine sahip EntityFramework-Ters-POCO-Code-First-Generator'ı arıyorum. Diğer seçenek ayrı bağlamlar oluşturmaktır, ancak farklı şemalardaki RI denetimlerinin sorunlara neden olduğu görülmektedir. –

cevap

1

Kod İlk önce gereksinimlerinizi karşılayabilir. Derslerinizi bahsettiğiniz şekilde önek yapın ve EF'nin sahnelerin arkasındaki eşleştirmeyi ele almasını sağlayın. Tek bir bağlamda yapabilirsiniz:

public class Person 
{ 
    public int PersonId { get; set; } 
    public string LastName { get; set; } 
    public string FirstName { get; set; } 
    ... 
} 

public class empPerson 
{ 
    public int PersonId { get; set; } 
    public string LastName { get; set; } 
    public string FirstName { get; set; } 
    ... 
} 

Şimdi sadece haritasını yapmak için bağlamında akıcı yapılandırmayı kullanın:

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

    modelBuilder.Entity<Person>() 
     .ToTable("Person", "schema1") 
     .HasKey(p => p.PersonId); 

    modelBuilder.Entity<empPerson>() 
     .ToTable("Person", "emp") 
     .HasKey(p => p.PersonId); 

    // other fluent code for relationships, etc. 
} 

Ben ilk siz "ToTable (kullanabilirsiniz kodunda biliyoruz https://msdn.microsoft.com/en-us/data/jj591617.aspx#2.3

+0

Entity Framework Database ilk önce kodu değil, bu cevap bu soruyla ilgili değil –

+1

Yorum ekledi "EntityFramework-Ters-POCO-Code-First-Generator arıyorum" - Evet, o değiştirmiş olmalı soru. –

+0

@SteveGreene Veri tabanı ilk yaklaşımları nasıl? –

İlgili konular