Yansımayla yeni oluşturdum. Şaşırtıcı bir şekilde düşündüğümden daha az çaba harcadım, bir kere düşünüp düşünmeye başladım.
ben yaptım nasıl (aka: algoritma)
Yük düzeneği. mecliste her Sınıfı (Tip) => oluşturmak tablo için
=> alanı eklemek oluşturmak sınıftaki her olsun/set özellik için $ {className} kimliği
olarak birincil anahtarı oluşturun (map özellik türü db türü)
Yabancı anahtar özel özniteliklerini class => Eğer varsa, anahtar ekleyin. fk_index olarak (Özel öznitelik ayarlayın imza
Diğer kısıtlamalar (örneğin alın [ForeignKey ("TableA, TABLEB")] gibidir: kontrol edin) özel niteliklerini => üretmek uygun
Eğer yoksa kaynak koduna erişebilir, bu eşlemeleri xml'den okuyabilirsiniz. ***** Edit: Eğer xml sizin için her zaman son seçenek bir çözümse (benim için olduğu gibi), sınıflarınızda IEnumerable < Özniteliği > Bu durumda, Öznitelik yüzeyiniz, çek ve benzersiz sınırlamalar söz konusu olduğunda alan adını saklamak için 'string TargetProperty {get; set;}' özelliğini içermelidir. *****
That's it !!
İpuçları:
MONTAJ YÜKLENİYOR: Ah! Bu arada, bir yükleme sistemi, yükleme programının nerede bulacağı tüm montaj bağımlılıklarının sağlanmasını sağlamak olacaktır. Unutmayın, Visual Studio bu dinamik yük senaryosundaki bağımlılıkları çözmenize yardımcı olamaz. Komut satırında csc.exe çalıştırıyormuş gibi düşünün. Derleme yükleme sorunları olursa, etki alanı modeli derlemesinin her bir iç bağımlılığının, yükleme programının bulabileceği yerlerde bulunduğundan emin olun.
TÜR MAPPING: NULL türüne NULL türünde NULL değil, NULL türüne ayarlanır. Dize türleri nvarchar (max) olarak ayarlanmıştır. Parayı istediğiniz gibi ondalık veya ikiye eşleyin, harita boolunu bit veya eşdeğeriyle eşleyin, DateTime'ı datetime için eşleyin, Map byte [] 'dan ikiliye, uzunluğa (x, 0) eşleyin ve int için harita int.
APP MİMARİSİ: Anında ihtiyacım olan çözümüme bir konsol uygulaması eklemek benim için kolaydı, ancak daha sonra, diğer projelere kolayca geçiş yapabilmesini sağlamak için giriş argsleri sağlamak isteyebilirsiniz.Bunu düzeltmek için, kod özniteliğine sahip olmanız gerekir, bu da özel niteliklerinizi bildirecek, aksi halde tür özelliklerinde de geçiş yapmak veya özel öznitelikler için yapılandırma bölümleri ayarlamak isteyebilirsiniz. Kullanmak ve yapılandırmak ve tekrar kodgen programı tam olarak ne geri döndüğünü bilir.
Bu yardımcı olur umarım.
P
etki alanı modeli koduna erişim var mı? Sınıf ve özelliklere nitelikler ekleyebilir misiniz? –
Her durumda, kaynak kodu erişilebilir değilse, Ryan, xml ile öznitelikleri eşleyebilirsiniz. Benim gibi, son seçenek olarak xml yaparsanız, IEnumerable döndüren her etki alanı sınıfı için uzantı yöntemleri oluşturabilirsiniz. Yine de, chuning için teşekkürler. –