12/08/2018, 18:19

Net Core API Project With EF6 code first, Responsitory Design Partern - P3 - Create Configuration from database

Hi All ở 2 phần trước mình đã hướng dẫn các bạn tạo projecy .Net core và tạo Repository, và hôm nay mình sẽ tiếp tục bài viết để hướng dẫn các bạn quản lý các Config key bằng Database. Phần 1: .Net Core API Project With EF6 code first, Responsitory Design Partern Phần 2: .Net Core API Project ...

Hi All

ở 2 phần trước mình đã hướng dẫn các bạn tạo projecy .Net core và tạo Repository, và hôm nay mình sẽ tiếp tục bài viết để hướng dẫn các bạn quản lý các Config key bằng Database.

Phần 1: .Net Core API Project With EF6 code first, Responsitory Design Partern

Phần 2: .Net Core API Project With EF6 code first, Responsitory Design Partern - P2 - Create Repository

  • khi chúng ta làm việc với các project của .Net thì việc sử dụng file configuration là rất thường xuyên, và một câu hỏi đặt ra là các key mang tính chất private sẽ được quản lý như thế nào để đảm bảo tính bảo mật. Và trong một lần mày mò trên Google thì mình có đọc được 1 bài viết hướng dẫn việc add các key config từ database vào file Configuaration thì hôm nay mình xin hướng dẫn lại cho các bạn dựa trên những gì mà mình hiểu.
  • Do mình sửa dụng code first nên để tạo table mình sẽ bắt đầu tạo từ Model và tạo migration
  • Mình tiền hành add Class SampleNetCoreConfig.cs vào folder "DataAccess/Model/" và có content như sau
  public class SampleNetCoreConfig: BaseEntity
    {
        public string Key { get; set; }
        public string Value { get; set; }
    }

Table này có 2 column chính là Key và Value sử dụng giống như là Key và Value trong file config, sau này nếu muốn thêm 1 key mới hoặc sửa value của config thì chỉ cần vào table này sửa là xong.

  • Tiếp theo mình sử dụng migration với cú pháp
add-migration add_config_table

Migration sẽ được render vào folder "DataAccess/Migrations/"

    public partial class add_config_table : Migration
    {
        protected override void Up(MigrationBuilder migrationBuilder)
        {
            migrationBuilder.CreateTable(
                name: "SampleNetCoreConfig",
                columns: table => new
                {
                    Id = table.Column<int>(nullable: false)
                        .Annotation("MySQL:AutoIncrement", true),
                    Active = table.Column<bool>(nullable: false),
                    CreatedTime = table.Column<DateTime>(nullable: true),
                    Key = table.Column<string>(nullable: true),
                    UpdatedTime = table.Column<DateTime>(nullable: true),
                    Value = table.Column<string>(nullable: true)
                },
                constraints: table =>
                {
                    table.PrimaryKey("PK_SampleNetCoreConfig", x => x.Id);
                });

        }

        protected override void Down(MigrationBuilder migrationBuilder)
        {
            migrationBuilder.DropTable(
                name: "SampleNetCoreConfig");
        }
    }

Vậy là chúng ta đã có được table để lưu các giá trị của config rồi, nôm na là các config của chúng ta đã được bảo mật hơn một tí, còn nếu hacker mà vào được database rồi thì mình bó tay nhé             </div>
            
            <div class=

0