Я работаю по принципу «сначала база данных», так как не У меня нет контроля над базой данных. В таблицах, с которыми я работаю, не определены ключи/отношения, поэтому мне нужно создать их самостоятельно.
Таблицы, с которыми я работаю, будут доступны только для чтения. Три таблицы настроены для текущих, исторических и ожидающих данных. Таблицы имеют одинаковые ограничения, но с некоторыми различиями в именах столбцов.
Пример диаграммы приведен ниже. Эта схема дублируется для ИСТОРИЧЕСКОГО и ОЖИДАЮЩЕГО. В нескольких столбцах для 04, 05 и 07 имеется составной ключ (PolicyNumber + LocationNumber + BuildingNumber + SequenceNumber)

Моя мысль состоит в том, чтобы настроить абстрактные базовые классы для каждой таблицы со всем, что в ней - включая свойства клавиш и навигации:
Код: Выделить всё
public abstract class 01Base
{
public ICollection Foo02 { get; set; } = [];
public ICollection Foo04 { get; set; } = [];
public string PolicyNumber { get; set; } = null!;
// all other properties.
}
public partial class Current01 : 01Base {}
public partial class Historical01 : 01Base {}
public partial class Pending01 : 01Base {}
< /code>
public abstract class 04Base
{
public required 01Base Common01 { get; set; }
public ICollection Foo05 { get; set; } = [];
public ICollection Foo07 { get; set; } = [];
// all other properties including composite key properties.
}
public partial class Current04 : 04Base {}
public partial class Historical04 : 04Base {}
public partial class Pending04 : 04Base {}
< /code>
public abstract class 05Base
{
public 04Base Foo04 { get; set; }
// all other properties including composite key properties.
}
public partial class Current05 : 05Base {}
public partial class Historical05 : 05Base {}
public partial class Pending05 : 05Base {}
- Имеет ли такое наследование смысл для данной структуры таблицы?
< li>Можно ли помещать свойства навигации в абстрактные классы?
Подробнее здесь: https://stackoverflow.com/questions/793 ... -questions
Мобильная версия