Я использую таблицу для иерархии TPH в Entity Framework, которая в основном является частичным классом для общих основных атрибутов для расширенных типов данных.Запретить циклическую parent_ID `table per type` vs` table per hierarchy` vs `table per class`
У меня есть 2 объекта/классы; Course
Объект и объект Student
Объект, который разделяет те же базовые свойства, что и MyBaseCommonEntity
. Цель состоит в том, чтобы иметь возможность выполнить Service/ticket
на любом из объектов. Мне нужна помощь в моделировании этого, будет ли это тип общего типа или типа наследования?
Мои вопросы: Я использую int для ссылки на parentID. Клавиша pK также является int.
- Как я могу предотвратить циклические ссылки
- сделано, эта проверка при установке
- тип иерархии Идентификатор дать мне эту функцию по умолчанию ли?
Какова разница между столом каждого типа против таблицы в иерархии против таблицы за class`
public partial class MyBaseCommonEntity { public int Id { get; set; } //Does it have any parents, does it belong to anyone public int? ParentId { get; set; } public string Name { get; set; } public string Description { get; set; } public System.DateTime CreatedDate { get; set; } public System.DateTime StartDate { get; set; } public System.DateTime? EndDate { get; set; } // Audit Stuff, whom, when why? public System.DateTime? AuditDate { get; set; } public string AuditUser { get; set; } public string AuditComments { get; set; } }