Я хочу отобразить кучу разных объектов данных, которые я использую с помощью WPF. Эти объекты данных различаются в данных. У них есть общие свойства, но у них также есть некоторые отличающиеся свойства. Будет «мастер» класс, который ссылается на эти объекты. Каждый мастер-класс может иметь один из этих типов данных.
Мне сложно проектировать их даже на уровне базы данных. Должен ли я иметь одну таблицу для каждого объекта данных, что облегчает получение данных с помощью NHibernate (просто укажите одну из этих сущностей). Это делает его довольно трудным для использования с помощью WCF. Если я хочу отобразить эти данные в WPF, мне, вероятно, понадобится коллекция некоторого разнообразия, а этого у меня нет.
Я мог бы поместить все типы данных в одну и ту же таблицу и иметь уникальное ограничение в несколько столбцов для идентификатора владельца и идентификатора типа данных. Но тогда у меня могут быть нулевые свойства в моих сущностях, и это также будет трудно отобразить в пользовательском интерфейсе. Это также усложнит редактирование объектов, так как я должен помнить, какие свойства пользователь может и не может редактировать.
Полагаю, визуально сущности будут выглядеть следующим образом:
public class Master
{
int Id
DataType1 Data1
DataType2 Data2
}
public class DataType1
{
int Id
string SomeString
string AnotherString
}
public class DataType2
{
int Id
string SomeString
string DifferentString
}
А это вторым способом:
public class Master
{
int Id
List<DataType> Types
}
public class DataType
{
int Id
string SomeString
string AnotherString
string DifferentString
}
Так что будет лучшим способом? Или есть другой способ, который лучше, чем оба (возможно, есть)?