SqliteDbContext.cs 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. using Edge.Core.Database.Configuration.Models;
  2. using Edge.Core.Database.Models;
  3. using Microsoft.EntityFrameworkCore;
  4. namespace Edge.Core.Database
  5. {
  6. /// <summary>
  7. /// this type is injected into IServiceProvider by lifetime of Scoped: services.AddScoped<SqliteDbContext>()
  8. /// so, retrieve an instance of this DbContext by always create your own scope, and dispose it when done.
  9. /// otherwise, a global shared one would be retrieved.
  10. /// </summary>
  11. public class SqliteDbContext : DbContext
  12. {
  13. protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
  14. {
  15. optionsBuilder.UseSqlite("Data Source=liteFccCore_sqlite_database.db");
  16. }
  17. protected override void OnModelCreating(ModelBuilder modelBuilder)
  18. {
  19. modelBuilder.Entity<GenericData>()
  20. .HasIndex(p => new { p.Owner })
  21. .IsUnique(false);
  22. modelBuilder.Entity<GenericData>()
  23. .HasIndex(p => new { p.Type })
  24. .IsUnique(false);
  25. modelBuilder.Entity<GenericData>()
  26. .HasIndex(p => new { p.State })
  27. .IsUnique(false);
  28. modelBuilder.Entity<GenericData>()
  29. .HasIndex(p => new { p.CreatedTimeStamp })
  30. .IsUnique(false);
  31. modelBuilder.Entity<GenericData>()
  32. .HasIndex(p => new { p.ModifiedTimeStamp })
  33. .IsUnique(false);
  34. modelBuilder.Entity<GenericData>()
  35. .HasIndex(p => new { p.IntProperty0 })
  36. .IsUnique(false);
  37. modelBuilder.Entity<GenericData>()
  38. .HasIndex(p => new { p.IntProperty1 })
  39. .IsUnique(false);
  40. modelBuilder.Entity<GenericData>()
  41. .HasIndex(p => new { p.IntProperty2 })
  42. .IsUnique(false);
  43. modelBuilder.Entity<GenericData>()
  44. .HasIndex(p => new { p.IntProperty3 })
  45. .IsUnique(false);
  46. modelBuilder.Entity<GenericData>()
  47. .HasIndex(p => new { p.IntProperty4 })
  48. .IsUnique(false);
  49. modelBuilder.Entity<GenericData>()
  50. .HasIndex(p => new { p.IntProperty5 })
  51. .IsUnique(false);
  52. modelBuilder.Entity<GenericData>()
  53. .HasIndex(p => new { p.IntProperty6 })
  54. .IsUnique(false);
  55. modelBuilder.Entity<GenericData>()
  56. .HasIndex(p => new { p.IntProperty7 })
  57. .IsUnique(false);
  58. modelBuilder.Entity<GenericData>()
  59. .HasIndex(p => new { p.IntProperty8 })
  60. .IsUnique(false);
  61. modelBuilder.Entity<GenericData>()
  62. .HasIndex(p => new { p.IntProperty9 })
  63. .IsUnique(false);
  64. modelBuilder.Entity<GenericData>()
  65. .HasIndex(p => new { p.DoubleProperty0 })
  66. .IsUnique(false);
  67. modelBuilder.Entity<GenericData>()
  68. .HasIndex(p => new { p.DoubleProperty1 })
  69. .IsUnique(false);
  70. modelBuilder.Entity<GenericData>()
  71. .HasIndex(p => new { p.DoubleProperty2 })
  72. .IsUnique(false);
  73. modelBuilder.Entity<GenericData>()
  74. .HasIndex(p => new { p.DoubleProperty3 })
  75. .IsUnique(false);
  76. modelBuilder.Entity<GenericData>()
  77. .HasIndex(p => new { p.DoubleProperty4 })
  78. .IsUnique(false);
  79. modelBuilder.Entity<GenericData>()
  80. .HasIndex(p => new { p.DoubleProperty5 })
  81. .IsUnique(false);
  82. modelBuilder.Entity<GenericData>()
  83. .HasIndex(p => new { p.DoubleProperty6 })
  84. .IsUnique(false);
  85. modelBuilder.Entity<GenericData>()
  86. .HasIndex(p => new { p.DoubleProperty7 })
  87. .IsUnique(false);
  88. modelBuilder.Entity<GenericData>()
  89. .HasIndex(p => new { p.DoubleProperty8 })
  90. .IsUnique(false);
  91. modelBuilder.Entity<GenericData>()
  92. .HasIndex(p => new { p.DoubleProperty9 })
  93. .IsUnique(false);
  94. modelBuilder.Entity<GenericData>()
  95. .HasIndex(p => new { p.StrProperty0 })
  96. .IsUnique(false);
  97. modelBuilder.Entity<GenericData>()
  98. .HasIndex(p => new { p.StrProperty1 })
  99. .IsUnique(false);
  100. modelBuilder.Entity<GenericData>()
  101. .HasIndex(p => new { p.StrProperty2 })
  102. .IsUnique(false);
  103. modelBuilder.Entity<GenericData>()
  104. .HasIndex(p => new { p.StrProperty3 })
  105. .IsUnique(false);
  106. modelBuilder.Entity<GenericData>()
  107. .HasIndex(p => new { p.StrProperty4 })
  108. .IsUnique(false);
  109. modelBuilder.Entity<GenericData>()
  110. .HasIndex(p => new { p.StrProperty5 })
  111. .IsUnique(false);
  112. modelBuilder.Entity<GenericData>()
  113. .HasIndex(p => new { p.StrProperty6 })
  114. .IsUnique(false);
  115. modelBuilder.Entity<GenericData>()
  116. .HasIndex(p => new { p.StrProperty7 })
  117. .IsUnique(false);
  118. modelBuilder.Entity<GenericData>()
  119. .HasIndex(p => new { p.StrProperty8 })
  120. .IsUnique(false);
  121. modelBuilder.Entity<GenericData>()
  122. .HasIndex(p => new { p.StrProperty9 })
  123. .IsUnique(false);
  124. modelBuilder.Entity<GenericData>()
  125. .HasIndex(p => new { p.TimeStampProperty0 })
  126. .IsUnique(false);
  127. modelBuilder.Entity<GenericData>()
  128. .HasIndex(p => new { p.TimeStampProperty1 })
  129. .IsUnique(false);
  130. modelBuilder.Entity<GenericData>()
  131. .HasIndex(p => new { p.TimeStampProperty2 })
  132. .IsUnique(false);
  133. modelBuilder.Entity<GenericData>()
  134. .HasIndex(p => new { p.TimeStampProperty3 })
  135. .IsUnique(false);
  136. modelBuilder.Entity<GenericData>()
  137. .HasIndex(p => new { p.TimeStampProperty4 })
  138. .IsUnique(false);
  139. modelBuilder.Entity<ProcessorMetaConfigDbModel>()
  140. .HasIndex(p => new { p.Name })
  141. .IsUnique(true);
  142. modelBuilder.Entity<ProcessorMetaConfigDbModel>()
  143. .HasIndex(p => new { p.TimeStamp })
  144. .IsUnique(false);
  145. modelBuilder.Entity<ProcessorMetaPartsMetaConfigDbModel>()
  146. .HasIndex(p => new { p.ProcessorMetaConfigId, p.Type })
  147. .IsUnique(true);
  148. modelBuilder.Entity<GenericAlarmDbModel>()
  149. .HasIndex(p => new { p.Severity })
  150. .IsUnique(false);
  151. modelBuilder.Entity<GenericAlarmDbModel>()
  152. .HasIndex(p => new { p.HiddenData })
  153. .IsUnique(false);
  154. modelBuilder.Entity<GenericAlarmDbModel>()
  155. .HasIndex(p => new { p.Category, p.SubCategory })
  156. .IsUnique(false);
  157. modelBuilder.Entity<GenericAlarmDbModel>()
  158. .HasIndex(p => new { p.OpeningTimestamp })
  159. .IsUnique(false);
  160. modelBuilder.Entity<GenericAlarmDbModel>()
  161. .HasIndex(p => new { p.ClosedTimestamp })
  162. .IsUnique(false);
  163. modelBuilder.Entity<GenericAlarmDbModel>()
  164. .HasIndex(p => new { p.ProcessorEndpointFullTypeStr })
  165. .IsUnique(false);
  166. modelBuilder.Entity<GenericAlarmDbModel>()
  167. .HasIndex(p => new { p.OriginatorDisplayName, p.OpeningTimestamp, p.ClosedTimestamp })
  168. .IsUnique(false);
  169. }
  170. public DbSet<FuelPointReservation> FuelPointReservationModels { get; set; }
  171. public DbSet<FuelSaleTransaction> PumpTransactionModels { get; set; }
  172. public DbSet<FuelPriceChange> FuelPriceChanges { get; set; }
  173. public DbSet<GenericData> GenericDatas { get; set; }
  174. public DbSet<GenericAlarmDbModel> GenericAlarms { get; set; }
  175. public DbSet<ProcessorMetaConfigDbModel> ProcessorMetaConfigs { get; set; }
  176. public DbSet<ProcessorMetaPartsMetaConfigDbModel> ProcessorMetaPartsMetaConfigs { get; set; }
  177. }
  178. }