![](/img/trans.png)
[英]How to set up persistent object for one-to-many and many-to-many at same time? [DevExpress]
[英]How to set up classes to model one-to-many relationship with at least one object in the range set
假設您要使用OOP對以下情況進行建模。 您想要一個User類,一個Album類和一個Photo類,這樣
A User has 0 or more Albums
An Album has 1 or more Photos
因為我需要一個相冊至少要有一張照片,所以我認為應該將List<Photo> photos
參數放在我的相冊類的構造函數中。 但是,這將假定在創建父相冊類之前創建了一個Photo對象列表。 因此,我不能像我計划的那樣在Photo類的構造函數中包含Album parentAlbum
參數。
對於我來說,設計每張照片可以引用其父相冊的最佳方法是什么,但是如果沒有任何照片就無法創建相冊?
嚴格來說,我實際上認為您不應該從Photo
實例中引用父Album
,因為:a)一張照片不需要相冊,並且b)您將來限制了Photo
的可重用性。 如果您可以提出一種刪除該引用的方法,那么我會做的。 您可以通過搜索您擁有的每個Album
來查找父Album
,或者更好的方法是創建相冊的照片字典。
話雖這么說,我本人當然也做了類似的事情,因為它使編碼變得非常容易:)並沒有在Photo
的構造函數中設置父Album
,但這可能是下一個最好的事情:
class Album {
public Album (List<Photo> photos)
{
if (photos.Count < 1)
{
throw new Exception("Album must have at least one photo.");
}
foreach (Photo thisPhoto in photos)
{
thisPhoto.setAlbum(this);
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.