QLiberaceContext.cs 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. using System;
  2. using System.Collections.Generic;
  3. using Microsoft.EntityFrameworkCore;
  4. using Microsoft.EntityFrameworkCore.Metadata;
  5. namespace Workbench.Entity
  6. {
  7. public partial class QLiberaceContext : DbContext
  8. {
  9. public QLiberaceContext()
  10. {
  11. }
  12. public QLiberaceContext(DbContextOptions<QLiberaceContext> options)
  13. : base(options)
  14. {
  15. }
  16. public virtual DbSet<Setting> Settings { get; set; } = null!;
  17. public virtual DbSet<Tenant> Tenants { get; set; } = null!;
  18. public virtual DbSet<TenantUser> TenantUsers { get; set; } = null!;
  19. public virtual DbSet<User> Users { get; set; } = null!;
  20. protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
  21. {
  22. if (!optionsBuilder.IsConfigured)
  23. {
  24. #warning To protect potentially sensitive information in your connection string, you should move it out of source code. You can avoid scaffolding the connection string by using the Name= syntax to read it from configuration - see https://go.microsoft.com/fwlink/?linkid=2131148. For more guidance on storing connection strings, see http://go.microsoft.com/fwlink/?LinkId=723263.
  25. optionsBuilder.UseSqlServer("Server=(localdb)\\MSSQLLocalDB;Database=QLiberace;Trusted_Connection=True;");
  26. }
  27. }
  28. protected override void OnModelCreating(ModelBuilder modelBuilder)
  29. {
  30. modelBuilder.Entity<Setting>(entity =>
  31. {
  32. entity.ToTable("Setting", "base");
  33. entity.HasIndex(e => new { e.TenantId, e.ModuleCode, e.Code }, "IDX_SETTING_TENANT_MCODE_CODE")
  34. .IsUnique();
  35. entity.Property(e => e.Id).HasComment("Setting primary key");
  36. entity.Property(e => e.Code)
  37. .HasMaxLength(100)
  38. .HasComment("Setting code. Main key to search.");
  39. entity.Property(e => e.Created)
  40. .HasColumnType("datetime")
  41. .HasDefaultValueSql("(getdate())")
  42. .HasComment("Record created timestamp");
  43. entity.Property(e => e.Description)
  44. .HasMaxLength(500)
  45. .HasComment("Setting value description");
  46. entity.Property(e => e.IsEnabled).HasComment("Flag if setting is enabled");
  47. entity.Property(e => e.Modified)
  48. .HasColumnType("datetime")
  49. .HasComment("Record modified timestamp");
  50. entity.Property(e => e.Modifier)
  51. .HasMaxLength(100)
  52. .HasComment("Record modifier signature");
  53. entity.Property(e => e.ModuleCode)
  54. .HasMaxLength(10)
  55. .HasComment("Module code that setting belongs. Secondary key");
  56. entity.Property(e => e.Name)
  57. .HasMaxLength(200)
  58. .HasComment("Setting name. Informational value.");
  59. entity.Property(e => e.ParentId).HasComment("Reference to parent setting");
  60. entity.Property(e => e.SequenceNo).HasComment("Order number");
  61. entity.Property(e => e.TenantId).HasComment("Reference to tenant that setting belongs");
  62. entity.Property(e => e.Value).HasComment("Setting value");
  63. entity.Property(e => e.ValueTypeQualified)
  64. .HasMaxLength(500)
  65. .HasComment("Qualified name of value type");
  66. entity.HasOne(d => d.Parent)
  67. .WithMany(p => p.InverseParent)
  68. .HasForeignKey(d => d.ParentId)
  69. .HasConstraintName("REL_SETTING_SETTING_ID");
  70. entity.HasOne(d => d.Tenant)
  71. .WithMany(p => p.Settings)
  72. .HasForeignKey(d => d.TenantId)
  73. .OnDelete(DeleteBehavior.ClientSetNull)
  74. .HasConstraintName("REL_SETTING_TENANT_ID");
  75. });
  76. modelBuilder.Entity<Tenant>(entity =>
  77. {
  78. entity.ToTable("Tenant", "base");
  79. entity.HasIndex(e => e.Code, "IDX_TENANT_CODE")
  80. .IsUnique();
  81. entity.HasKey(e => e.Id);
  82. entity.Property(e => e.Id).HasComment("Tenant primary key");
  83. entity.Property(e => e.Code)
  84. .HasMaxLength(20)
  85. .HasComment("Tenant code. Main key to search.");
  86. entity.Property(e => e.Created)
  87. .HasColumnType("datetime")
  88. .HasDefaultValueSql("(getdate())")
  89. .HasComment("Record created timestamp");
  90. entity.Property(e => e.IsLocked).HasComment("Flag if tenant locked (not accessable)");
  91. entity.Property(e => e.LastAccess)
  92. .HasColumnType("datetime")
  93. .HasComment("Last access (usage) timestamp.");
  94. entity.Property(e => e.Modified)
  95. .HasColumnType("datetime")
  96. .HasComment("Record modified timestamp");
  97. entity.Property(e => e.Modifier)
  98. .HasMaxLength(100)
  99. .HasComment("Record modifier signature");
  100. entity.Property(e => e.Name)
  101. .HasMaxLength(200)
  102. .HasComment("Tenant name. Informational value.");
  103. });
  104. modelBuilder.Entity<TenantUser>(entity =>
  105. {
  106. entity.HasNoKey();
  107. entity.ToTable("TenantUser", "base");
  108. entity.Property(e => e.TenantId).HasComment("Reference to tenant");
  109. entity.Property(e => e.UserId).HasComment("Reference to user");
  110. entity.HasOne(d => d.Tenant)
  111. .WithMany()
  112. .HasForeignKey(d => d.TenantId)
  113. .HasConstraintName("REL_TENANTUSER_TENANT_ID");
  114. entity.HasOne(d => d.User)
  115. .WithMany()
  116. .HasForeignKey(d => d.UserId)
  117. .HasConstraintName("REL_TENANTUSER_USER_ID");
  118. });
  119. modelBuilder.Entity<User>(entity =>
  120. {
  121. entity.ToTable("User", "base");
  122. entity.HasIndex(e => e.LoginName, "IDX_USER_LOGINNAME")
  123. .IsUnique();
  124. entity.Property(e => e.Id).HasComment("User primary key");
  125. entity.Property(e => e.Created)
  126. .HasColumnType("datetime")
  127. .HasDefaultValueSql("(getdate())")
  128. .HasComment("Record created timestamp");
  129. entity.Property(e => e.IsLocked).HasComment("Flag if user access locked (not accessable)");
  130. entity.Property(e => e.LoginName)
  131. .HasMaxLength(200)
  132. .HasComment("User login name name. Key search value");
  133. entity.Property(e => e.Modified)
  134. .HasColumnType("datetime")
  135. .HasComment("Record modified timestamp");
  136. entity.Property(e => e.Modifier)
  137. .HasMaxLength(100)
  138. .HasComment("Record modifier signature");
  139. });
  140. OnModelCreatingPartial(modelBuilder);
  141. }
  142. partial void OnModelCreatingPartial(ModelBuilder modelBuilder);
  143. }
  144. }