2016-03-31 25 views
2

Filestream/FileTable'ı Belge Deposu olarak kullanan bir Özel Belge Yönetim Sistemi üzerinde çalışıyorum. > Yıl - -> Ay -> Dosyalar Ne yapmak istiyorum C# kodu bir saklı yordam ve geçişte çağırmaktırFileTable dizin ağacı oluştur

+ APPNameDir + 2015 + 12 File 1.pdf File 2.pdf + 2016 + 01 File 3.pdf File 4.pdf + 02 File 5.pdf File 6.pdf

APPNameDir şu şekildedir:

Dizin yapıdır Bir klasör ağacı (örneğin (BooksApp/2016/03) ve file_stream verisi

Sonra, saklı yordamda, klasör ağacının var olup olmadığını kontrol etmek istiyorum, aksi halde, yok olan klasörleri oluşturun.

Bu post'u gördükten sonra tek seferde bir klasör oluşturabiliyorum ancak aynı anda birden çok klasör oluşturamıyorum.

2016'nın mevcut olup olmadığını kontrol edebileceğimi tahmin edebilirim. Daha sonra, ay 03'in bulunup bulunmadığını kontrol edin, sonra oluşturun ve benzer şeyler yapın, ancak milyonlarca belge DataBase'de olduğunda performans konusunda endişeliyim çünkü belgeyi web uygulamasından 2 saniyeden daha kısa bir sürede eklemek istiyorum (bir kısıtlamadır)). Birkaç gün önce bir performans benchamark yaptım ve web uygulamasından bir belge eklerken, 100K doküman veritabanında 100 ila 300 milisaniye sürdü. Eğer her bir dizin için FileTable'ı sorgulamalı ve daha sonra var olmadıkları takdirde bunları oluşturmam gerekiyorsa, DB'deki bu tür belgeler düştüğünde performanstan korkuyorum.

Projelerinizde benzer bir ihtiyaç yaşadınız mı? Herhangi bir fikir?

cevap

1

Bunun için yeni bir CLR entegrasyon projesi oluşturdum. https://github.com/rhyous/Db.FileTableFramework

İstediğiniz çeşitli işlevleri veya yordamları vardır: CreateFile, CreateDirectory, DirectoryExists. Ve GitHub'da elbette herkes tarafından değiştirilebilir ve geliştirilebilir.

+1

Sorunuzu geçerli olarak işaretledim. Sonunda ADO.NET yerine dapper ile bir SOA çözümü oluşturdum ve çok iyi çalışıyor. Çok teşekkürler – Alvmad