using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; 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; } 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; } public string UserDefineLength { get; set; } public string UserDefineText { get; set; } } #endregion #region 测试生成迁移移除外键约束 #endregion #region 测试迁移不生成外键约束,ef知道外键关系,但是数据库不保存外键 public class Project : BaseFullAuditEntity { } public class ProjectUser : BaseFullAuditEntity { public string Code { get; set; } public string Name { get; set; } //外键 public Guid ProjectId { get; set; } public Project Project { get; set; } } public class ProjectUser2 : BaseFullAuditEntity { //外键 public Guid ProjectId { get; set; } public Project Project { get; set; } [Comment("NewCreateName")] public string NewCreateName { get; set; } } #endregion #region 测试字符串长度 [Comment("test commment4")] public class TestStr: BaseFullAuditEntity { [Comment("test commment3")] public string DefualtLength { get; set; } [Comment("test commment1")] [MaxLength] public string MaxLength { get; set; } [Comment("test commment2")] [StringLength(400)] public string DefineLength { get; set;} } /// /// 备注 /// public class TestStr2 { /// /// 备注1 /// [StringLength(200)] public string DefualtLength { get; set; } /// /// 备注1 /// [MaxLength] public string MaxLength { get; set; } /// /// 备注3 /// [StringLength(400)] public string DefineLength { get; set; } } #endregion #region 测试命名不符合规则 public class TestFieldName : BaseFullAuditEntity { public string NAME1 { get; set; } public string NAme2 { get; set; } public string naMe3 { get; set; } } #endregion #region 测试备注迁移 以及修改备注迁移 [Comment("这是类备注的修改")] public class TestComment: BaseFullAuditEntity { public string Code { get; set; } [Comment("这是字段备注Name的修改")] public string Name { get; set; } } #endregion #region 测试默认值约束 public class TestStrDefaultValue : BaseFullAuditEntity { //手动不给默认值 public string Value1 { get; set; } //手动给默认值 public string Value2 { get; set; } = string.Empty; //dbfirst 默认生成方式 项目开启了enable public string Value3 { get; set; } = null!; } #endregion }