Bir müşterinin bir excel dosyası, csv veya sekmeyle ayrılmış dosya alabildiği bir projem var. Bu dosya bir SQLite veritabanı tablosuna dönüştürdüğüm bir veri dosyasına yüklenir. Gerçekten yazılan nesneler ve veri kümeleriyle çalışmayı tercih ederim, bu yüzden yansıtma kullanarak güçlü bir şekilde yazılan bir sınıfa oluşturulan veritabanı tablosunu kolayca dönüştürmenin bir yolu var mı? Kicker, uygulama içine aktarılan dosya her zaman farklı olacak (yani, farklı sütunlar), bu yüzden gerçekten yazılan herhangi bir nesneyi gerçekten kodlayamıyorum, her zaman anında oluşturulmaları gerekecek.Veritabanından veya veritabanı tablosundan sınıf üret
cevap
Ryan zaten doğru soruyu sordu ve ben sadece güçlü bir şekilde yazılan bir sınıfın tek yararının tasarım veya derleme zamanında olduğunu ancak çalışma zamanında olmadığını kabul edebilirim.
Belki de bu tabloyu kullanan başka bir uygulamada bazı güçlü tür sınıfları oluşturduğunuz SQLlite tablolarınızı oluşturduktan sonra.
Bu durumda büyük olasılıkla T4 - Text Template Transformation Toolkit'a bir göz atabilirsiniz, bu nedenle bir sorgudan güçlü tür sınıfları oluşturabilir, böylece bu sınıfları başka uygulamalar için derleme zamanında kullanabilirsiniz.
Ancak, kullanmaya başlamadan önce, T4'ün best kept Visual Studio secret s'den biri olduğunu bilmelisiniz. ;-)
Bu, eğer bir olasılık olsaydı C# 4'ün yeni dynamic
özelliklerini kullanabilirdiniz. Daha spesifik olarak ExpandoObject Class.
ExpandoObject
üyeleri dinamik ilave edildi ve zamanında çıkarılabilir bir nesneyi temsil eder.
Ayrıca DynamicObject Class da var.
Teorik olarak, Reflection.Emit gibi bir şey kullanarak bir derleme oluşturma olabilir, ya:
fazla bilgi için aşağıdaki linklere bir göz atın kod dosyaları üreterek ve derleyiciyi bir derleme haline getirmek için çağırmakla bile. Bununla birlikte, bunun nasıl yararlı olacağından emin değilim. Bu tabloların şemasının çalışma zamanında belirlendiği sürece, bu oluşturulan sınıfların herhangi bir kullanımı, yansıtmayı kullanmadan eklediğiniz güçlü yazılan özellikleri kullanamaz ve bu noktada esasen ilgileniyorsunuzdur Eklenen performans yansımasıyla zayıf bir şekilde yazılan bir şey. C# 4.0'daki dinamik tipler, performans isabetini ortadan kaldırabilir, ancak gerçek bir fayda sağlamak için hala çok fazla karmaşıklık ekliyorsunuz.
- 1. Veritabanından Güncelleştirme Modeli (Veritabanı Öncelikli)
- 2. MySQL veritabanı tablosundan JavaScript değişkeni nasıl alınır?
- 3. Veritabanı veritabanından php'ye nasıl açılır?
- 4. Firebird veritabanı tablosundan sütun adlarının listesini alın
- 5. Java kaynağından UML üret
- 6. Hibernate kullanarak veritabanı tablosundan gerçek zamanlı bir varlık nasıl oluşturulur
- 7. Veritabanından .NET yapılandırmasını oku
- 8. Olası tüm yedekleri üret
- 9. Java Üret Rasgele sayı {-1,0,1}
- 10. R'de alternatif artışlarla diziyi üret?
- 11. h2 veritabanı: Desteklenmeyen veritabanı dosyası sürümü veya
- 12. yer veya konum veritabanı
- 13. veritabanından
- 14. Bir veritabanı tablosundan aynı sunucudaki başka bir veritabanı tablosuna veri ekleme
- 15. Django: Farklı bir veritabanından veri alma
- 16. Eclipse güncelleştirme sitesinden HTML üret
- 17. N-basamaklı rasgele sayı üret
- 18. Çekirdek modülünde rasgele sayı üret
- 19. Mysqli veya özel veritabanı sınıfı?
- 20. Veritabanı nesne veya dizi olarak kayıtları döndürür?
- 21. Salatalık tablosundan beyaz boşluk veya nil nesne nasıl alınır?
- 22. Veritabanından boş değerler etrafında sınıf nasıl tasarlanır? Benim sınıfımda
- 23. Alıntı sqlite tablosundan alma
- 24. arama tablosundan sözlüğü oluşturmak
- 25. excel tablosundan VBA
- 26. Firebase öğesini dizin veya sınıf ile kaldır
- 27. MySQL floş tabloları - Geçerli veritabanı veya her veritabanı?
- 28. Symfony'nin yapılandırma parametrelerini veritabanından yükleme (Doktrin)
- 29. BLOB veritabanından ekleyemiyor
- 30. Veritabanından sorgulama web2py