У меня есть эта структура класса:
деятельность открытого класса {
[Key] public long ActivityId { get; set; } public string ActivityName { get; set; } public virtual HashSet<ActivityLogMessage> ActivityLogMessages { get; set; } public virtual HashSet<FileImportLogMessage> FileImportLogMessages { get; set; } public virtual HashSet<RowImportLogMessage> RowImportLogMessages { get; set; } } public abstract class LogMessage { [Required] public string Message { get; set; } public DateTimeOffset CreateDate { get; set; } [Required] public long ActivityId { get; set; } public virtual Activity Activity { get; set; } } public class ActivityLogMessage : LogMessage { public long ActivityLogMessageId { get; set; } } public class FileImportLogMessage : ActivityLogMessage { public long? StageFileId { get; set; } } public class RowImportLogMessage : FileImportLogMessage { public long? StageFileRowId { get; set; } }
Что дает мне это, модель
Каждое сообщение (действие, файл или строка) должно быть связано с действием. Почему 2-й и 3-й уровень не имеют такой же мощности, как ActivityLogMessage ? Мои попытки описать отношения внешнего ключа (свободно через конструктор моделей) также не увенчались успехом.
Это действительно академическое упражнение для меня, чтобы действительно понять, как EF сопоставляется с реляционными, и это меня смущает.
С уважением, Ричард