QLiberaceContext.cs 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317
  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<Country> Countries { get; set; } = null!;
  17. public virtual DbSet<Currency> Currencies { get; set; } = null!;
  18. public virtual DbSet<Setting> Settings { get; set; } = null!;
  19. public virtual DbSet<Tenant> Tenants { get; set; } = null!;
  20. public virtual DbSet<TenantCountry> TenantCountries { get; set; } = null!;
  21. public virtual DbSet<TenantCurrency> TenantCurrencies { get; set; } = null!;
  22. public virtual DbSet<TenantUser> TenantUsers { get; set; } = null!;
  23. public virtual DbSet<User> Users { get; set; } = null!;
  24. protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
  25. {
  26. if (!optionsBuilder.IsConfigured)
  27. {
  28. #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.
  29. optionsBuilder.UseSqlServer("Server=(localdb)\\MSSQLLocalDB;Database=QLiberace;Trusted_Connection=True;");
  30. }
  31. }
  32. protected override void OnModelCreating(ModelBuilder modelBuilder)
  33. {
  34. modelBuilder.Entity<Country>(entity =>
  35. {
  36. entity.ToTable("Country", "base");
  37. entity.HasIndex(e => e.Code, "IDX_COUNTRY_CODE")
  38. .IsUnique();
  39. entity.Property(e => e.Id).HasComment("Country primary key");
  40. entity.Property(e => e.Code)
  41. .HasMaxLength(5)
  42. .HasComment("Country code. Main key to search.");
  43. entity.Property(e => e.Created)
  44. .HasColumnType("datetime")
  45. .HasDefaultValueSql("(getdate())")
  46. .HasComment("Record created timestamp");
  47. entity.Property(e => e.DefaultCurrencyId).HasComment("Default country currency");
  48. entity.Property(e => e.Modified)
  49. .HasColumnType("datetime")
  50. .HasComment("Record modified timestamp");
  51. entity.Property(e => e.Modifier)
  52. .HasMaxLength(100)
  53. .HasComment("Record modifier signature");
  54. entity.Property(e => e.Name)
  55. .HasMaxLength(50)
  56. .HasComment("Country name. Informational value.");
  57. entity.Property(e => e.Vat)
  58. .HasColumnName("VAT")
  59. .HasComment("Percentage VAT definition");
  60. entity.HasOne(d => d.DefaultCurrency)
  61. .WithMany(p => p.Countries)
  62. .HasForeignKey(d => d.DefaultCurrencyId)
  63. .OnDelete(DeleteBehavior.ClientSetNull)
  64. .HasConstraintName("REL_COUNTRY_CURRENCY_ID");
  65. });
  66. modelBuilder.Entity<Currency>(entity =>
  67. {
  68. entity.ToTable("Currency", "base");
  69. entity.HasIndex(e => e.Code, "IDX_CURRENCY_ID")
  70. .IsUnique();
  71. entity.Property(e => e.Id).HasComment("Currency primary key");
  72. entity.Property(e => e.Code)
  73. .HasMaxLength(5)
  74. .HasComment("Currency code. Main key to search.");
  75. entity.Property(e => e.Created)
  76. .HasColumnType("datetime")
  77. .HasDefaultValueSql("(getdate())")
  78. .HasComment("Record created timestamp");
  79. entity.Property(e => e.Modified)
  80. .HasColumnType("datetime")
  81. .HasComment("Record modified timestamp");
  82. entity.Property(e => e.Modifier)
  83. .HasMaxLength(100)
  84. .HasComment("Record modifier signature");
  85. entity.Property(e => e.Name)
  86. .HasMaxLength(50)
  87. .HasComment("Currency name. Informational value.");
  88. entity.Property(e => e.Sign)
  89. .HasMaxLength(3)
  90. .HasComment("Currency sign chars");
  91. });
  92. modelBuilder.Entity<Setting>(entity =>
  93. {
  94. entity.ToTable("Setting", "base");
  95. entity.HasIndex(e => new { e.TenantId, e.ModuleCode, e.Code }, "IDX_SETTING_TENANT_MCODE_CODE")
  96. .IsUnique();
  97. entity.Property(e => e.Id).HasComment("Setting primary key");
  98. entity.Property(e => e.Code)
  99. .HasMaxLength(100)
  100. .HasComment("Setting code. Main key to search.");
  101. entity.Property(e => e.Created)
  102. .HasColumnType("datetime")
  103. .HasDefaultValueSql("(getdate())")
  104. .HasComment("Record created timestamp");
  105. entity.Property(e => e.Description)
  106. .HasMaxLength(500)
  107. .HasComment("Setting value description");
  108. entity.Property(e => e.IsEnabled).HasComment("Flag if setting is enabled");
  109. entity.Property(e => e.Modified)
  110. .HasColumnType("datetime")
  111. .HasComment("Record modified timestamp");
  112. entity.Property(e => e.Modifier)
  113. .HasMaxLength(100)
  114. .HasComment("Record modifier signature");
  115. entity.Property(e => e.ModuleCode)
  116. .HasMaxLength(10)
  117. .HasComment("Module code that setting belongs. Secondary key");
  118. entity.Property(e => e.ParentId).HasComment("Reference to parent setting");
  119. entity.Property(e => e.SequenceNo).HasComment("Order number");
  120. entity.Property(e => e.TenantId).HasComment("Reference to tenant that setting belongs");
  121. entity.Property(e => e.Value).HasComment("Setting value");
  122. entity.Property(e => e.ValueTypeQualified)
  123. .HasMaxLength(500)
  124. .HasComment("Qualified name of value type");
  125. entity.HasOne(d => d.Parent)
  126. .WithMany(p => p.InverseParent)
  127. .HasForeignKey(d => d.ParentId)
  128. .HasConstraintName("REL_SETTING_SETTING_ID");
  129. entity.HasOne(d => d.Tenant)
  130. .WithMany(p => p.Settings)
  131. .HasForeignKey(d => d.TenantId)
  132. .OnDelete(DeleteBehavior.ClientSetNull)
  133. .HasConstraintName("REL_SETTING_TENANT_ID");
  134. });
  135. modelBuilder.Entity<Tenant>(entity =>
  136. {
  137. entity.ToTable("Tenant", "base");
  138. entity.HasIndex(e => e.Code, "IDX_TENANT_CODE")
  139. .IsUnique();
  140. entity.Property(e => e.Id).HasComment("Tenant primary key");
  141. entity.Property(e => e.Code)
  142. .HasMaxLength(20)
  143. .HasComment("Tenant code. Main key to search.");
  144. entity.Property(e => e.Created)
  145. .HasColumnType("datetime")
  146. .HasDefaultValueSql("(getdate())")
  147. .HasComment("Record created timestamp");
  148. entity.Property(e => e.IsLocked).HasComment("Flag if tenant locked (not accessable)");
  149. entity.Property(e => e.LastAccess)
  150. .HasColumnType("datetime")
  151. .HasComment("Last access (usage) timestamp.");
  152. entity.Property(e => e.Modified)
  153. .HasColumnType("datetime")
  154. .HasComment("Record modified timestamp");
  155. entity.Property(e => e.Modifier)
  156. .HasMaxLength(100)
  157. .HasComment("Record modifier signature");
  158. entity.Property(e => e.Name)
  159. .HasMaxLength(200)
  160. .HasComment("Tenant name. Informational value.");
  161. });
  162. modelBuilder.Entity<TenantCountry>(entity =>
  163. {
  164. entity.HasNoKey();
  165. entity.ToTable("TenantCountry", "base");
  166. entity.Property(e => e.CountryId).HasComment("Reference to country");
  167. entity.Property(e => e.TenantId).HasComment("Reference to tenant");
  168. entity.HasOne(d => d.Country)
  169. .WithMany()
  170. .HasForeignKey(d => d.CountryId)
  171. .OnDelete(DeleteBehavior.ClientSetNull)
  172. .HasConstraintName("REL_TENANTCOUNTRY_COUNTRY_ID");
  173. entity.HasOne(d => d.Tenant)
  174. .WithMany()
  175. .HasForeignKey(d => d.TenantId)
  176. .OnDelete(DeleteBehavior.ClientSetNull)
  177. .HasConstraintName("REL_TENANTCOUNTRY_TENANT_ID");
  178. });
  179. modelBuilder.Entity<TenantCurrency>(entity =>
  180. {
  181. entity.HasNoKey();
  182. entity.ToTable("TenantCurrency", "base");
  183. entity.Property(e => e.CurrencyId).HasComment("Reference to currency");
  184. entity.Property(e => e.TenantId).HasComment("Reference to tenant");
  185. entity.HasOne(d => d.Currency)
  186. .WithMany()
  187. .HasForeignKey(d => d.CurrencyId)
  188. .OnDelete(DeleteBehavior.ClientSetNull)
  189. .HasConstraintName("REL_TENANTCURRENCY_CURRENCY__ID");
  190. entity.HasOne(d => d.Tenant)
  191. .WithMany()
  192. .HasForeignKey(d => d.TenantId)
  193. .OnDelete(DeleteBehavior.ClientSetNull)
  194. .HasConstraintName("REL_TENANTCURRENCT_TENANT_ID");
  195. });
  196. modelBuilder.Entity<TenantUser>(entity =>
  197. {
  198. entity.HasNoKey();
  199. entity.ToTable("TenantUser", "base");
  200. entity.Property(e => e.TenantId).HasComment("Reference to tenant");
  201. entity.Property(e => e.UserId).HasComment("Reference to user");
  202. entity.HasOne(d => d.Tenant)
  203. .WithMany()
  204. .HasForeignKey(d => d.TenantId)
  205. .OnDelete(DeleteBehavior.ClientSetNull)
  206. .HasConstraintName("REL_TENANTUSER_TENANT_ID");
  207. entity.HasOne(d => d.User)
  208. .WithMany()
  209. .HasForeignKey(d => d.UserId)
  210. .OnDelete(DeleteBehavior.ClientSetNull)
  211. .HasConstraintName("REL_TENANTUSER_USER_ID");
  212. });
  213. modelBuilder.Entity<User>(entity =>
  214. {
  215. entity.ToTable("User", "base");
  216. entity.HasIndex(e => e.LoginName, "IDX_USER_LOGINNAME")
  217. .IsUnique();
  218. entity.Property(e => e.Id).HasComment("User primary key");
  219. entity.Property(e => e.Created)
  220. .HasColumnType("datetime")
  221. .HasDefaultValueSql("(getdate())")
  222. .HasComment("Record created timestamp");
  223. entity.Property(e => e.IsLocked).HasComment("Flag if user access locked (not accessable)");
  224. entity.Property(e => e.LoginName)
  225. .HasMaxLength(200)
  226. .HasComment("User login name name. Key search value");
  227. entity.Property(e => e.Modified)
  228. .HasColumnType("datetime")
  229. .HasComment("Record modified timestamp");
  230. entity.Property(e => e.Modifier)
  231. .HasMaxLength(100)
  232. .HasComment("Record modifier signature");
  233. });
  234. OnModelCreatingPartial(modelBuilder);
  235. }
  236. partial void OnModelCreatingPartial(ModelBuilder modelBuilder);
  237. }
  238. }