cuốn sách gpt4 ai đã làm

Thuộc tính mở rộng AbpvNext

In lại Tác giả: Sahara Thời gian cập nhật: 2024-12-31 12:42:57 59 4
mua khóa gpt4 Nike

thuộc tính mở rộng

  • Chúng tôi nhận thấy rằng abp sẽ có thuộc tính ExtraProperties theo mặc định, vậy vai trò của nó là gì? Khi sử dụng abp, chúng ta cần mở rộng bảng gốc của nó hoặc thêm các trường chúng ta muốn mà không thay đổi mã nguồn và triển khai nó theo cách nhỏ nhất. Lúc này, giá trị của nó được phản ánh.
  • Dữ liệu chúng tôi thêm sẽ được lưu trữ trong ExtraProperties dưới dạng đối tượng JSON.

Làm thế nào để thêm

  • Lớp xxxModuleExtensionConfigurator được cung cấp trong lớp Domain.Shared

Ví dụ

  • Mở rộng bảng AbpUser với thuộc tính địa chỉ hình đại diện của người dùng
 lớp tĩnh công khai JuiceModuleExtensionConfigurator { tĩnh riêng tư chỉ đọc OneTimeRunner OneTimeRunner = new OneTimeRunner(); public static void Cấu hình() { OneTimeRunner.Run(() => { configureExistingProperties(); configureExtraProperties(); } } tĩnh tĩnh riêng tư configureExtraProperties() { ObjectExtensionManager.Instance.Modules() .ConfigureIdentity(identity => { Identity.ConfigureUser(user => { user.AddOrUpdateProperty( //property type: string "AvatarUrl", property => { property.Attribution.Add( new StringLengthAttribution(128)); / / Độ dài tối đa là 28 // ...property.Attribut.Add( new NeedAttribution()); Có nhiều tính năng khác có thể được sử dụng trực tiếp} ); }); });
  • Cách ghi hoặc cập nhật cơ sở dữ liệu
riêng tư chỉ đọc IdentityUserManager _userManager; public TestAppService(IdentityUserManager userManager) { _userManager = userManager; } công khai không đồng bộ Nhiệm vụ AddUserAsync() { var user = new IdentityUser(GuidGenerator.Create(), "test-user", "test@qq.com") ; user.ExtraProperties["AvatarUrl"] = "kiểm tra hình đại diện-url"; đang chờ _userManager.CreateAsync(user }
  • Tác dụng

nghi ngờ?

  • Dữ liệu này có được lưu trữ trong trường mở rộng của cơ sở dữ liệu ở định dạng json không? Điều gì xảy ra nếu kịch bản của tôi yêu cầu lập chỉ mục? Phương pháp này không hoạt động vào lúc này?

  • Ánh xạ tới cột trường cơ sở dữ liệu.

    • Tích hợp mã trong xxxEfCoreEntityExtensionMappings của lớp EntityFrameworkCore
lớp tĩnh công khai JuiceEfCoreEntityExtensionMappings { tĩnh riêng tư chỉ đọc OneTimeRunner OneTimeRunner = new OneTimeRunner(); public static void Cấu hình() { JuiceGlobalFeatureConfigurator.Configure(); OneTimeRunner.Run(() => { ObjectExtensionManager.Instance(); .MapEfCoreProperty( "AvatarUrl", (entityBuilder, propertyBuilder) => { propertyBuilder.HasMaxLength(128); } } } );
  • Thực hiện di chuyển lõi ef
di chuyển dotnet ef addAvatarUrl cập nhật cơ sở dữ liệu dotnet
  • Tác dụng.

  • Cách duy trì tính nhất quán như trước thông qua việc bổ sung và chỉnh sửa mã hoặc thông qua các hoạt động trường mở rộng.

Để ý

  • Khi sử dụng AutoMapper, hãy nhớ cần có các thuộc tính mở rộng của trình ánh xạ (MapExtraProperties), như sau:
lớp công khai AbpIdentityApplicationModuleAutoMapperProfile : Hồ sơ { public AbpIdentityApplicationModuleAutoMapperProfile() { CreateMap() .MapExtraProperties(); CreateMap() .MapExtraProperties();
  • Khi viết module riêng, chúng ta cũng nên hỗ trợ ExtraProperties để tính linh hoạt sẽ tốt hơn.

ABP vNext Pro

  • Xem trước phiên bản AbpPro Vben5 Antd Vue
  • Xem trước phiên bản AbpPro Vben5 Antd Element Plus Vue
  • Xem trước phiên bản AbpPro Vben5 Antd Naive UI Vue
  • Địa chỉ tài liệu

Cuối cùng, bài viết về các thuộc tính mở rộng của AbpvNext kết thúc tại đây. Nếu bạn muốn biết thêm về các thuộc tính mở rộng của AbpvNext, vui lòng tìm kiếm các bài viết về CFSDN hoặc tiếp tục duyệt các bài viết liên quan. Tôi hy vọng bạn sẽ ủng hộ blog của tôi trong tương lai! .

59 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress