Bire-çok eşleştirmeyi kullanmanın tek sebebi performans yüzünden.
Başlangıçta projeye performans sorunuyla çarpıncaya kadar bire bir gittim. Sorun genellikle, tersine bire bir eşleme için tembel yükleme yapamadığınızdan kaynaklanır. Örneğin. A (varsa) 'ye sahip olan bir varlığa sahip olduğunuzda, bu eşleme ile ilgili B varlığına sahip olursunuz. Bu durumda, yüklediğiniz her A öğesi için, B varlığı da yüklenir. İlgili nesne mevcut olup olmadığını kontrol ederek hatayı önlemek için yapılır. Tembel yükleme için vekil, ilgili varlık var olmadığını, siz bile olmadığına dair sizi yanıltmasın. Eğer bu gibi ilgili varlık bulunmadığını kontrol Eğer geç yükleme sorun yok, ancak bir tane çoğa haritalama kullanıyorsanız geliştirici bir koleksiyon ile çalışıyor, çünkü bir sorun
if (entityA.EntityB == null) HandleNoEntityB();
olacak olan biz için proxy oluştur.
if (entityA.EntitiesB.Count == 0) HandleNoEntityB();
Bu varlık bir zaman bu durumda tam olarak bir ilgili varlık B. sahiptir sisteminizde bir varsayımda bulunmak eğer bir sorun olmak zorunda değildir, bunun üzerine contrained = "true" belirlesin haritalaması.
FK sütunları oluşturulmadığından emin misiniz? Benim için bunlar üretiliyor ve veritabanı, bire çok ilişkiyle göründüğü gibi görünüyor. Belki de her iki taraf için yanlışlıkla 'Invserse' kullandın? –
Evet Eminim - Bire bir tablo, FK tuşu olmadan öğeye benziyor. – Darbio
Bire bir yapmanın iki yolu vardır. Oluşturduğunuz şekilde, onları birleştirmek için her iki öğenin birincil anahtarlarını kullanır. İkinci durumda, benzersiz bir kısıtlamaya sahip yabancı bir anahtarınız var http://nhforge.org/doc/nh/en/index.html#mapping-declaration-onetoone – Vadim