- Cengiz Han / Haziran 15, 2006
Ayende blogunda O/RM kullanırken yapılan temel hatalardan birisine örnek vermiş.
Bir weblog uygulamasında yer alacak Post nesnesini
public class Post
{
public int PostId;
public int BlogId;
public int CategoryId;
}
şeklinde modellemenin hatalı, doğru modellemenin aşağıdaki gibi olduğundan bahsedilmiş.
public class Post
{
public int PostId;
public Blog Blog;
public Category Category;
}
Yorumlarda da enum lar ile ilgili güzel pratikler ile ilgili notlar var. Ben de domain model tasarımında "doğru" olan bu yöntemi kullanan ve savunan birisi olarak paylaşmak istedim.
Bu tarz bir tasarımda Post'un dahil olduğu Blog nesnesinin BlogID sine ihtiyaç duyduğumda gereksiz yere Blog nesnesini yüklemek (Blog tablosunda select query çalıştırmak) yerine Post nensesine BlogID koyarım (bu değer zaten Post tablosundan select yaparken geliyor) oradan gerekirse BlogID yi alırım, Blog nesnesi gerekirse Blog propertysini kullanırım şeklinde yaklaşılarak yapılmış tasarımlarda söz konusu olabiliyor. Bu tasarım biçimide bana göre doğru sayılmamakta.
Bu duruma çözüm arayanların ise Lazy Load + Ghost Objects ikilisini incelemesini şiddetle tavsiye ederim.
Common Mistakes When Using OR/M