2010-11-18 6 views
2

Nhibernate'teki ilişki tablolarını yönetmenin daha iyi bir yolu olup olmadığını merak ediyorum. Şu anda kullanıcı ilk A oluşturduğunda, sadece .Save'i arayabilir ve her şey yolunda olabilir. Ama yüklediklerinde ve değişiklik yaptıkları zaman, sadece ilgili kayıtları silmeyi ve yeniden oluşturmayı istemiyorum. Artık geçerli olmayan kayıtları silmeyi ve yeni olanları oluşturmayı ve hala geçerli olanları ve yalnızca veritabanında bırakmayı istiyorum.Nhibernate Relation tablosunu yönetmenin daha iyi yolu

Şu anda listeye göz atıyorum ve artık seçilmeyenleri siliyorum, sonra bunları yeni olan listeye ekleyin. En iyi yol gibi görünmüyor, çünkü listeden iki kere geçiyorum. Orada LINQ bir liner çözümü var mı?

Temelde Şu anda ne yapıyorum:

Döngü A içinden ve B ile neyin değil B
Döngü silip önceden bir

teşekkür whats değil ekleyin.

cevap

3

A'larınızın ve B'nin gerçekte ne olduğundan emin değilsiniz.

Bazı kök varlıkların çocuklarıysa, cascade = "all-delete-orphan" komutunu kullanabilirsiniz. NH artık listede olmayan tüm çocukları silecek.

Kök varlıkların bir listesini yönetiyorsanız, bunu "eklenmiş öğeleri bul/kaldırılan öğeleri bul" işini gözden geçirmeniz gerekir.

var removedItems = oldList.Except(newList); 
var addedItems = newList.Except(oldList);