using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using System.Linq; using System.Text; using System.Threading.Tasks; namespace IRaCIS.Core.Test.CodeFirstTest.MSSQL { public abstract class BaseFullAuditEntity { [Key] public Guid Id { get; set; } public Guid CreateUserId { get; set; } public DateTime CreateTime { get; set; } public Guid UpdateUserId { get; set; } public DateTime UpdateTime { get; set; } } [Table("TrialImageDownload")] public class TrialImageDownload : BaseFullAuditEntity { public Guid SubjectVisitId { get; set; } public bool IsSuccess { get; set; } public DateTime DownloadStartTime { get; set; } public DateTime? DownloadEndTime { get; set; } public ImageType ImageType { get; set; } public int ImageCount { get; set; } public long ImageSize { get; set; } #region 测试导航属性 public List TestNewList { get; set; } #endregion } public enum ImageType { Dicom = 1, NoneDIcom = 2 }; public class TestNew : BaseFullAuditEntity { public Guid TrialImageDownloadId { get; set; } [StringLength(100)] public string TestName { get; set; } } public class Subject : BaseFullAuditEntity { public string Name { get; set; } public Guid? LatestSubjectVisitId { get; set; } public Guid? FinalSubjectVisitId { get; set; } #region 同时配置一对多,一对一 导航属性 [ForeignKey("FinalSubjectVisitId")] public SubejectVisit FinalSubjectVisit { get; set; } [ForeignKey("LatestSubjectVisitId")] public SubejectVisit LatestSubjectVisit { get; set; } public List SubejectVisitList { get; set; } #endregion } public class SubejectVisit : BaseFullAuditEntity { public Subject Subject { get; set; } public Guid SubjectId { get; set; } } public class Dictionary : BaseFullAuditEntity { #region 导航属性 [ForeignKey("ConfigTypeId")] public Dictionary ConfigType { get; set; } [ForeignKey("ParentId")] public Dictionary Parent { get; set; } public List ChildList { get; set; } = new List(); #endregion public Guid? ParentId { get; set; } public Guid? ConfigTypeId { get; set; } public string Code { get; set; } } #region 一个外键 关联两个实体 public class ReadingClinicalData : BaseFullAuditEntity { public string Code { get; set; } public Guid ReadingId { get; set; } [ForeignKey("ReadingId")] public SubejectVisit SubjectVisit { get; set; } [ForeignKey("ReadingId")] public ReadModule ReadModule { get; set; } } public class ReadModule : BaseFullAuditEntity { public string Name { get; set; } } #endregion #region 测试 字符串默认长度配置 public class TestStringLength : BaseFullAuditEntity { public string DefaultLength { get; set; } [MaxLength(300)] public string UserDefineLength { get; set; } [Column(TypeName = "text")] public string UserDefineText { get; set; } } #endregion #region 测试生成迁移移除外键约束 #endregion #region 测试迁移不生成外键约束,ef知道外键关系,但是数据库不保存外键 public class Project : BaseFullAuditEntity { } public class ProjectUser : BaseFullAuditEntity { //外键 public Guid ProjectId { get; set; } public Project Project { get; set; } } #endregion }