Toplam Köklerine azaltmak Depoları
Ben şu anda veritabanındaki her tablo için bir depo var ve daha fazla toplam kökleri onları sadece azaltarak DDD kendimi hizalamak istiyorum.
Hadi aşağıdaki tablolar var varsayalım, User
Phone
. Her kullanıcı bir veya daha fazla cep telefonu var. Toplam kök kavramı olmadan böyle şeyler yapabilirim:
//assuming I have the userId in session for example and I want to update a phone number
List<Phone> phones = PhoneRepository.GetPhoneNumberByUserId(userId);
phones[0].Number = “911”;
PhoneRepository.Update(phones[0]);
Toplam kökleri kavramı uygulamada daha kağıt üzerinde anlamak daha kolay. Hiç bir Kullanıcıya ait olmayan telefon numaraları yok, yani o anlamda uzak PhoneRepository ve UserRepository telefonuyla ilgili yöntemler dahil olur? Cevabın Evet olduğunu varsayarak, önceki kod örneği yeniden yazmak için gidiyorum.
Telefon numaralarını döndüren UserRepository bir yöntem var mı? Ya da her zaman Kullanıcının telefon numaralarını almak için bir Kullanıcı için bir başvuru döndürmek ve ilişkiyi traverse gerekir:
List<Phone> phones = UserRepository.GetPhoneNumbers(userId);
// Or
User user = UserRepository.GetUserWithPhoneNumbers(userId); //this method will join to Phone
Ben telefon, ben onlardan modifiye varsayarak elde olan ne olursa olsun, onları nasıl güncelleme için ne yapmam gerekiyor? Benim sınırlı anlayış kök altında nesneleri seçim doğru beni idare ederlerdi kök, #1 Aşağıda güncellenmelidir. Ancak bu iş çok iyi olan Varlık Çerçevesi, bu gibi son derece un-açıklayıcı, çünkü okuma kodunu bilmiyorum ne olduğumu aslında güncelleme olsa da Varlık Çerçeve tutmak sekmesinde değişti nesneler içinde grafik.
UserRepository.Update(user);
// Or
UserRepository.UpdatePhone(phone);
Son olarak, gerçekten bir şey için bağlı olmayan bazı arama tabloları var varsayarak, *, *, ***9 8 10*gibi. Bırakın çıkışlar ya da ne olursa olsun başka bir nedenle doldurmak için kullanabilirim. Bu tek başına havuzları? CodesRepository
gibi mantıksal gruplandırma/depo çeşit birleştirilebilir? Ya da en iyi uygulamalara karşı.
CEVAP
Toplam Kök depo üzerinde örnek gayet iyi biliyorum.e makul olamaz herhangi bir varlık başka bir bağımlılık olmadan kendi depo olmamalı (büyük telefonunuzda). Bunu dikkate almadan hızlı bir şekilde db tabloları 1-1 eşleme Depolarında bir patlama ile kendinizi bulabilirsiniz.
Değişiklikler db geri ısrar gelince niyet etrafında biraz karışıklığa neden olduklarını düşünüyorum olarak veri değişiklikleri yerine depoları kendileri için Çalışmak desen Birimi kullanarak bakmak gerekir. EF bir çözüm İş Birimi aslında EF içeriğiniz arayüzü etrafında bir sarıcı.
Arama veri deposu ile ilgili olarak, biz sadece özel bir alan varlık (Ülkeler, Renkler, vb) ait olmayan bir veri sorumlu olur bir ReferenceDataRepository oluşturun.
Nasıl bir sayfada saatlerin toplam say...
Nasıl azaltmak'bellek kullanımı s...
iTunes Connect, toplam satış onay?...
Nasıl yapılır: matplotlib ile keneleri...
Bellek kullanımını azaltmak ve bellek ...