我有这个类结构:
公共类活动{
[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; } }
这给了我这个模型
每条消息(活动、文件或行)都必须与活动相关联。为什么 2nd 和 3rd 级别的基数与 ActivityLogMessage 不同?我描述外键关系的尝试(通过模型构建器流畅)也失败了。
这对我来说真的是一个学术练习,让我真正了解 EF 如何映射到关系,这让我感到困惑。
问候,理查德