Yeni bir proje üzerinde her çalışmaya başladığımda kendimle zihinsel bir tartışmaya giriyorum ve POCO'larımı tasarlıyorum. Yabancı anahtar ilişkilerini tercih ediyor gibi görünen birçok öğretici / kod örneği gördüm :
Yabancı anahtar ilişkisi
public class Order
{
public int ID { get; set; }
public int CustomerID { get; set; } // <-- Customer ID
...
}
Bağımsız derneklerin aksine :
Bağımsız dernek
public class Order
{
public int ID { get; set; }
public Customer Customer { get; set; } // <-- Customer object
...
}
Geçmişte NHibernate ile çalıştım ve yalnızca daha fazla OO hissetmekle kalmayan, aynı zamanda (tembel yüklemeyle) bana sadece kimliği yerine tüm Müşteri nesnesine erişim sağlama avantajına sahip olan bağımsız ilişkilendirmeler kullandım. Bu, örneğin, bir Order örneğini almamı ve ardından Order.Customer.FirstName
açıkça bir birleştirme yapmak zorunda kalmadan yapmamı sağlıyor, bu da son derece kullanışlı.
Özetlemek gerekirse, sorularım:
- Bağımsız dernekleri kullanmanın önemli dezavantajları var mı? ve...
- Hiç yoksa, yabancı anahtar ilişkilerinin kullanılmasının nedeni ne olabilir?