我有这样的阶级结构:EF5,继承FK和基数
公共类活动 {
[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; } }
这给了我这个,模型
每个消息(活动,文件或行)必须具备e与一个活动相关联。为什么第二级和第三级不具有与ActivityLogMessage相同的基数?我尝试描述外键关系(通过modelbuilder流利)也失败了。
这真是一个学术练习,让我真正理解EF如何映射到关系,这使我感到困惑。
问候, 理查德