2012-10-14 10 views
7

EF (veritabanı önce) benim edmx dosyasından DBContext sınıfını otomatik olarak oluşturmasına ve bu DBContext özellikleri (örn: public DbSet<Student> student { get; set; }) için varsayılan adları gibi tablo adları kullanmak bu dosyaya (örneğin bazı değişiklik yaparsanızEntity Framework'teki DbContext özellik adlarını özelleştirme ve üzerine yazma işleminin durdurulması nasıl engellenir?

: gibi öğrenci adından öğrenciye öğrenci adını yeniden adlandırma), modelimi kurtardığım her defasında değişikliklerim kaybolur çünkü EF, DbContext sınıf dosyasını yeniden oluşturur.

Bu varsayılan davranışı nasıl değiştirebilirim ve kişiselleştirmeyi nasıl yapabilirim ve kaybedebilir miyim?

cevap

6

Pawel söylediklerini ayrıntılı için EF Designer .. EDMX dosyası (tasarımcı) ile her şeyin kaynağı olduğunu yapmak mümkün olmalıdır. Oluşturulan ürünlerde yapmanız gereken değişiklikler orada yapılmalıdır. Kısmi sınıflar aracılığıyla ek yöntemler veya özellikler ekleyebilirsiniz, ancak mevcut olanları değiştiremezsiniz .. bu yüzden kaynak EDMX dosyasında değiştirilmelidir.

Sadece tasarımcıdaki Tabloya sağ tıklayın ve yeniden adlandırın. Bu, temel tablo adını değiştirmez (en azından Veritabanı İlk tersine mühendislik, model ilk farklı bir hikaye).

+0

Tablo adları için Tamam, ancak Varlık sınıfımdaki DbContext öğesinden devralınan yöntem adları nedir? (In MyDataModel.Context.cs) –

+0

@Etienne - Hangi yöntem adları? Poco'lara Poco'nun bir sebebi denir. Yöntemleri yok. –

+0

T4 şablonu bana bir MyDataModel.Context.cs içeren bir MyDataModel.Context.tt verir. Bu sonuncusunda, kamusal kısmi sınıf Varlıklar tanımına sahibiz: DbContext tüm yöntemleri içeren listeyi (örn: public DbSet öğrenci {get; set;}). Depolarımın içinde, bu Varlıklar sınıfını örnekledikten sonra (ör: özel varlıklar bağlamı;) context.student kullanarak benim modelime erişebilirim ... İçerik.Students kullanarak erişime erişmek istiyorum ... Olmamaları için üzgünüm temizle ... –

1

Sen EDMX dosyasında bunu değiştirmek gerekir - Eğer

İlgili konular