Veritabanı İlkesi yaklaşımında Entity Framework 5 kullanıyorum ve edmx dosyasını kullanıyorum.Temel sınıf/Varlık EntityFramework 5.0
Varlıkların çoğunun 6 ortak alanı var. CreatedAt
, CreatedBy
vb. Gibi alanlar. Şimdi, bazı alanları, yalnızca ortak alanlara sahip olan Varlıklar'ın IQueryable
sürümlerine uygulanabilecek uzantılar olarak uyguladık. Ancak, uzantı yöntemini uygularken, T yazdığı gibi IQueryable
türünden herhangi bir şekilde erişilebilir ve yalnızca T türünün her zaman bir tür olması gerektiğini tanımlayabilirim.
Bu yüzden, ortak alanları olan ve T türünü taban türü olarak tanımlayan varlıklar için temel bir sınıf verebileceğimi düşündüm. Ama öyle değil mi?
Bunu nasıl çözeceğimiz veya yukarıda açıkladığımları nasıl uygulayacağımız hakkında bir fikriniz var mı?
Teşekkür: Varlık Framework tarafından ted ardından olmayan otomatik olarak oluşturulan sınıf gibi görünecektir. Yani, edmx dosyasının dışındaki arabirimi tanımlarım. o zaman, o nesneyi bu arayüzden uygulamaya geçireceğimi söyleyeceğim. Edmx dosyasını güncellediğimde allover'ı tekrar yapmak zorunda kalacağım gibi gerekli tüm varlıkların el ile düzenlenmesi kolay değil. – Amila
Otomatik olarak üretilen kodlara dokunmuyorsunuz. Kısmi sınıfların kullanılması gerekiyordu. EF'deki varlıklarınızın her biri için kısmi bir sınıf (Modeller klasörü altında) oluşturursunuz. Modelleriniz için bir Meta Veri Türü tanımlayabilirsiniz (veri açıklaması için). Güncellenen cevaba bakınız. – ataravati
Evet, şu anda MetadataType kullanıyorum. Ama bunu yapmak kolay bir yol olabileceğini düşündüm, yani bir varlığa bir taban sınıfı vermek gibi, şema içinde bir arayüz vermesine izin verilse daha iyi olurdu. Her neyse, bütün varlıklar için kısmi sınıfı tanımlamak zorunda kalacağım gibi. Hızlı yardım için teşekkürler – Amila