Какой тип сделать дочерним объектом справочных данных? - PullRequest
0 голосов
/ 05 марта 2010

У меня есть объект CaseNote, который имеет множество дочерних объектов, таких как CaseNoteContactType. Для 1 CaseNote может быть x CaseNoteContactType's. В пользовательском интерфейсе ContactTypes отображаются в CheckListBox.

Мой вопрос: как мне представить дочерний объект ContactType? Это простая int|string пара.

public Class CaseNote
{
  public Guid CaseNoteID { get; set; }
  ...
  public ??? ContactType { get; set; }
  etc...
// Down here would be Methods for saving, loading, validating, etc...
}

Будет ли ContactType Dictionary? IEnumerable<ContactType>? array, collection или List<ContactType> ??

Что имеет смысл в этих сценариях? ContactType не может существовать без CaseNote, но достаточно ли сделать его объектом? Я не понимаю значения каждого типа. Также имеет ли значение, что CaseNote может иметь от 0 до 30 ContactTypes?

Скажем, я иду по пути создания класса ContactType. Нужно ли дочернему классу свойство для хранения его идентификатора родителя?

Руководство с благодарностью.

Если я далеко отсюда, то это потому, что я никогда не настраивал бизнес-объект должным образом и сейчас изо всех сил стараюсь приспособить свою среду к тому, что я прочитал.

1 Ответ

2 голосов
/ 05 марта 2010

ContactType звучит как справочные данные. CaseNote может иметь 0 или N ContactTypes, и один ContactType может быть связан со многими CaseNotes. Это правильно?

Если так, я бы предложил вам создать новый тип с именем ContactType, который содержит два свойства, Id и Name (при условии, что для этого предназначены int и string):

public class ContactType
{
    public int Id { get; set; }
    public string Name { get; set; }
}

А затем в вашем классе CaseNote я бы объявил их как List (или интерфейс IList):

public IList<ContactType> ContactTypes { get; set; }

Чтобы проверить, есть ли у них какие-либо типы контактов, которые вы можете сделать:

if( myCase.ContactTypes.Count > 0 )
{
    ...
}
...