IwbDbContext.cs 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. using System.Data.Common;
  2. using System.Data.Entity;
  3. using System.Data.Entity.ModelConfiguration.Conventions;
  4. using WeApp.Authorization.Roles;
  5. using WeApp.Authorization.Users;
  6. using WeApp.BaseInfo;
  7. using WeApp.MultiTenancy;
  8. using IwbZero.EntityFramework;
  9. using WeApp.BasicInfo;
  10. using WeApp.TrainingCamp;
  11. namespace WeApp.EF
  12. {
  13. public class WeAppDbContext : IwbZeroDbContext<Tenant, Role, User>
  14. {
  15. //TODO: Define an IDbSet for your Entities...
  16. #region Basic
  17. public IDbSet<TrainingRoleInfo> TrainingRoleInfos { get; set; }
  18. public IDbSet<TrainingRoleGroupInfo> TrainingRoleGroupInfos { get; set; }
  19. public IDbSet<TrainingGroupRelateRoleInfo> TrainingGroupRelateRoleInfos { get; set; }
  20. public IDbSet<TempInfo> TempInfos { get; set; }
  21. public IDbSet<PortraitRemarkInfo> PortraitRemarkInfos { get; set; }
  22. #endregion
  23. #region CAMP
  24. public IDbSet<CampInfo> CampInfos { get; set; }
  25. public IDbSet<CampGroupInfo> CampGroupInfos { get; set; }
  26. public IDbSet<GroupScoreInfo> GroupScoreInfos { get; set; }
  27. public IDbSet<GroupLogInfo> GroupLogInfos { get; set; }
  28. public IDbSet<GroupRoleInfo> GroupRoleInfos { get; set; }
  29. public IDbSet<CampSceneMapInfo> CampSceneMapInfos { get; set; }
  30. //public IDbSet<BehaviorTagInfo> BehaviorTagInfos { get; set; }
  31. public IDbSet<CampRelateGroupRoleInfo> CampRelateGroupRoleInfos { get; set; }
  32. public IDbSet<GroupPortraitInfo> GroupPortraitInfos { get; set; }
  33. //public IDbSet<> s { get; set; }
  34. #endregion
  35. /* NOTE:
  36. * Setting "Default" to base class helps us when working migration commands on Package Manager Console.
  37. * But it may cause problems when working Migrate.exe of EF. If you will apply migrations on command line, do not
  38. * pass connection string name to base classes. ABP works either way.
  39. */
  40. public IDbSet<SysAttachFile> SysAttachFiles { get; set; }
  41. public IDbSet<SysState> SysStates { get; set; }
  42. public IDbSet<SysFunction> SysFunctions { get; set; }
  43. public IDbSet<SysHelp> SysHelps { get; set; }
  44. public WeAppDbContext()
  45. : base("Default")
  46. {
  47. }
  48. /* NOTE:
  49. * This constructor is used by ABP to pass connection string defined in WeAppDataModule.PreInitialize.
  50. * Notice that, actually you will not directly create an instance of WeAppDbContext since ABP automatically handles it.
  51. */
  52. public WeAppDbContext(string nameOrConnectionString)
  53. : base(nameOrConnectionString)
  54. {
  55. }
  56. //This constructor is used in tests
  57. public WeAppDbContext(DbConnection existingConnection)
  58. : base(existingConnection, false)
  59. {
  60. }
  61. public WeAppDbContext(DbConnection existingConnection, bool contextOwnsConnection)
  62. : base(existingConnection, contextOwnsConnection)
  63. {
  64. }
  65. protected override void OnModelCreating(DbModelBuilder modelBuilder)
  66. {
  67. base.OnModelCreating(modelBuilder);
  68. //---关闭级联删除
  69. // 禁用一对多级联删除
  70. modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();
  71. // 禁用多对多级联删除
  72. modelBuilder.Conventions.Remove<ManyToManyCascadeDeleteConvention>();
  73. }
  74. }
  75. }