2009-03-02 16 views
0

Kurulumu:Linq BLL konularda Güncellenmesi SQL - En İyi Uygulamalar

Bir Ürün nesnesini güncellemek için toplanır birçok alanları ile geniş bir form var. Bu yüzden ASPX sayfasında kullanıcı güncellenmesi gereken alanları değiştirir ve gönderir. Arkasındaki kodda böyle bir şey yapıyorum;

Dim p as New MyCompany.Product() 
p = p.GetProductById(ProductID) 

I nesne

p.Name = txtName.Text 
p.SKU = txtSKU.Text 
p.Price = txtPrice.Text 
...  
p.Update() 

Bu genişletilmiş ürün kısmi sınıfta bir güncelleştirme yöntemi için, bu yöntem (GetProductById) eklemek için SQL Linq Ürün kısmi sınıfını uzanır. Veritabanını günceller, e-posta gönderir ve tarih tablolarını güncellerim, böylece bu yöntemin tüm bunları yapmasını istiyorum.

projesi için 50 daha fazla alan

hepsi 50 alanlarını toplayan bir yöntem olması saçma olurdu (ve hata ayıklamak için IMO zor bc Zaten bu yolu gitmek istemiyorum) o kadar belli ki vardır sorun: sonra yeniden güncellemek asla bir DataContext'i kullanarak Linq to SQL aracılığı Ürünü alırsanız

çünkü takmak ve zaten başka DataContext bağlı olduğu varlık yapamaması hakkında o hataları.

Soru:

SO

benim BLL'deki bir yöntemle bir nesne alırsanız, ASPX sayfasında güncellemek ve yeniden veritabanını güncellemek için BLL aracılığıyla güncellemeleri göndermek için, nasıl olmalıdır deneyin Bunu yapmaya devam ediyorum?

cevap

0

LINQ-to-SQL'den bağımsız olarak veya değil, işte yaptığım şey. Gönderme üzerine, öğeyi ararım (PK'yi kullanarak tek bir öğe olması halinde hızlı olması gerekir), DAL'im bir veri nesnesi döndürür ve sayfadaki her öğeyi veri nesnesindeki karşılık gelen özelliklere sahip şekilde eşlemek için yansıma kullanır. DAL'im yalnızca değiştirilen öğeleri günceller.

Yapmanız gereken şey aynı, tüm değerleri bir araya getirmek ve bunları göndermek. LinqToSql ne değiştiğini belirlemek için yeterince akıllı değilse o zaman en iyi alternatif olmayabilir.

+0

Bu noktada Linq to SQL kullanmıyorum, bu noktada bir seçenek değil. Geriye dönüp tüm başvurumu sadece bu sorundan dolayı yineleyemiyorum. Cevabınız için teşekkürler. Linq'den Sql'e özel bir cevap aramaya devam edeceğim. – EdenMachine

İlgili konular