RepositoryFactory.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using YiSha.Data.EF;
  7. using YiSha.Enum;
  8. using YiSha.Util;
  9. namespace YiSha.Data.Repository
  10. {
  11. public interface IRepositoryFactory
  12. {
  13. Repository BaseRepository(DBConnectTypeEnum type);
  14. }
  15. public class RepositoryFactory : IRepositoryFactory
  16. {
  17. public Repository BaseRepository(DBConnectTypeEnum type)
  18. {
  19. IDatabase database = null;
  20. DBConnectHelper.GetInstance.GetDBConnectInfo(type, out string dbType, out string dbConnectionString);
  21. switch (dbType)
  22. {
  23. case "SqlServer":
  24. DbHelper.DbType = DatabaseType.SqlServer;
  25. database = new SqlServerDatabase(dbConnectionString);
  26. break;
  27. case "MySql":
  28. DbHelper.DbType = DatabaseType.MySql;
  29. database = new MySqlDatabase(dbConnectionString);
  30. break;
  31. case "Oracle":
  32. DbHelper.DbType = DatabaseType.Oracle;
  33. // 支持Oracle或是更多数据库请参考上面SqlServer或是MySql的写法
  34. break;
  35. default:
  36. throw new Exception("未找到数据库配置");
  37. }
  38. return new Repository(database);
  39. }
  40. }
  41. }