IwbDbContext.cs 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. using System.Data.Common;
  2. using System.Data.Entity;
  3. using System.Data.Entity.ModelConfiguration.Conventions;
  4. using WeOnlineApp.Authorization.Roles;
  5. using WeOnlineApp.Authorization.Users;
  6. using WeOnlineApp.BaseInfo;
  7. using WeOnlineApp.MultiTenancy;
  8. using IwbZero.EntityFramework;
  9. using WeOnlineApp.Basic;
  10. using WeOnlineApp.Question;
  11. using WeOnlineApp.TrainingCamp;
  12. namespace WeOnlineApp.EF
  13. {
  14. public class WeOnlineAppDbContext : IwbZeroDbContext<Tenant, Role, User>
  15. {
  16. //TODO: Define an IDbSet for your Entities...
  17. public IDbSet<SubjectCategoryInfo> SubjectCategoryInfos { get; set; }
  18. public IDbSet<CampInfo> CampInfos { get; set; }
  19. public IDbSet<CampPlayInfo> CampPlayInfos { get; set; }
  20. public IDbSet<CampPlayScoreInfo> CampPlayScoreInfos { get; set; }
  21. public IDbSet<CampPlayLogInfo> CampPlayLogInfos { get; set; }
  22. public IDbSet<CampPlayUserInfo> CampPlayUserInfos { get; set; }
  23. public IDbSet<CampSceneMapInfo> CampSceneMapInfos { get; set; }
  24. public IDbSet<QuestionInfo> QuestionInfos { get; set; }
  25. public IDbSet<QuestionFavoriteInfo> QuestionFavoriteInfos { get; set; }
  26. public IDbSet<QuestionAnswerInfo> QuestionAnswerInfos { get; set; }
  27. /* NOTE:
  28. * Setting "Default" to base class helps us when working migration commands on Package Manager Console.
  29. * But it may cause problems when working Migrate.exe of EF. If you will apply migrations on command line, do not
  30. * pass connection string name to base classes. ABP works either way.
  31. */
  32. public IDbSet<SysAttachFile> SysAttachFiles { get; set; }
  33. public IDbSet<SysState> SysStates { get; set; }
  34. public IDbSet<SysFunction> SysFunctions { get; set; }
  35. public IDbSet<SysHelp> SysHelps { get; set; }
  36. public WeOnlineAppDbContext()
  37. : base("Default")
  38. {
  39. }
  40. /* NOTE:
  41. * This constructor is used by ABP to pass connection string defined in WeOnlineAppDataModule.PreInitialize.
  42. * Notice that, actually you will not directly create an instance of WeOnlineAppDbContext since ABP automatically handles it.
  43. */
  44. public WeOnlineAppDbContext(string nameOrConnectionString)
  45. : base(nameOrConnectionString)
  46. {
  47. }
  48. //This constructor is used in tests
  49. public WeOnlineAppDbContext(DbConnection existingConnection)
  50. : base(existingConnection, false)
  51. {
  52. }
  53. public WeOnlineAppDbContext(DbConnection existingConnection, bool contextOwnsConnection)
  54. : base(existingConnection, contextOwnsConnection)
  55. {
  56. }
  57. protected override void OnModelCreating(DbModelBuilder modelBuilder)
  58. {
  59. base.OnModelCreating(modelBuilder);
  60. //---关闭级联删除
  61. // 禁用一对多级联删除
  62. modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();
  63. // 禁用多对多级联删除
  64. modelBuilder.Conventions.Remove<ManyToManyCascadeDeleteConvention>();
  65. }
  66. }
  67. }