2012-03-29 47 views

Trả lời

2

Câu hỏi này đã được trả lời trong nopCommerce diễn đàn here

http://www.nopcommerce.com/docs/75/plugin-with-data-access.aspx

+0

cảm ơn nhưng cần thêm trợ giúp – user1299582

+0

Tôi vẫn cần thêm trợ giúp. Tôi nói thêm rằng dự án trong Plugins tôi Tôi không thể nhìn thấy plugin này trong admin -> Configuration -> plugins tôi đã thêm dòng sau trong \ Presentation \ Nop.Web \ Views \ Catalog \ ProductTemplate.SingleVariant.cshtml @ Html.Action ("Chỉ mục", "Theo dõi", mới {productId = Model.Id}) Tôi nhận được ngoại lệ này: Thực thi yêu cầu con không thành công. Vui lòng kiểm tra InnerException để biết thêm thông tin. InnerException: {"Bộ điều khiển cho đường dẫn '/ p/5/1-oz-krugerrand' không được tìm thấy hoặc không thực hiện IController."} Tôi vừa thêm vài sản phẩm thông qua quản trị viên. – user1299582

+0

Tôi đã từng làm việc trên các plugin nhưng hãy nhớ thêm một số plugin hiện có. Tôi muốn bạn xác minh xem bạn có đường dẫn đầu ra xây dựng được đặt thành Nop.Web \ Plugins \ và cũng kiểm tra InstalledPlugins.txt trong thư mục App_data – Kiru

19

tôi đã dành nhiều thời gian cho đào sâu vào vấn đề này' sâu. Tôi có thể tóm tắt các giải pháp như sau:

  1. Tạo Entity Class (ví dụ Entity.cs)

    Đường dẫn: Nop/Core/Domain/Entity.cs

  2. Tạo Các Mapping lớp (ví dụ EntityMap.cs)

    Đường dẫn: Nop/dữ liệu/Mapping/EntityMap.cs

  3. Tạo một mô hình cho MVC (ví dụ EntityModel.cs)

    Đường dẫn: Nop/Admin/mô hình/EntityModel.cs HOẶC Nop/Web/mô hình/EntityModel.cs

  4. Tạo một validator cho mô hình (ví dụ EntityValidator.cs)

    Đường dẫn: Nop/Admin/Validators/EntityValidator.cs HOẶC Nop/Web/Validators/EntityValidator.cs

  5. tạo một cấu hình Mapping On AutoMapper StartupTask.cs cho Entity và mẫu

    Đường dẫn: Nop/Admin/Cơ sở hạ tầng HOẶC Nop/Web/Cơ sở hạ tầng

  6. Áp dụng Mapping giữa Model và Entity trên MappingExtensions.cs

    Đường dẫn: Nop/quản trị HOẶC Nop/Web

  7. Tạo một lớp dịch vụ và dịch vụ giao diện (ví dụ EntityService.cs, IEntityService.cs)

    Đường dẫn: Nop/Dịch vụ/EntityService.cs VÀ Nop/Dịch vụ/IEntityService.cs

  8. dịch vụ đăng ký cho dependency injection

    Đường dẫn: Nop/Web/Framework/DependencyRegistrar.cs

  9. Cuối cùng Tạo điều khiển và Xem cho mô hình cho

như nopcommerce sử dụng bản phát hành đầu tiên của MVC3, việc di chuyển cơ sở dữ liệu không được hỗ trợ và bạn phải thực hiện các thay đổi đối với các bảng cơ sở dữ liệu bằng tay. Bởi vì mã MVC đầu tiên phải thả và tạo lại cơ sở dữ liệu của bạn để phản ánh những thay đổi đối với cơ sở dữ liệu của bạn.

Nếu bạn muốn xem chi tiết hơn trong bất kỳ bước nào, hãy cho tôi biết - Tôi có thể mô tả chi tiết từng bước. Hy vọng điều này sẽ hữu ích.

+0

Bạn có thể giải thích chi tiết hoặc ví dụ nào không? Tôi tạo một bảng trong cơ sở dữ liệu nhưng tôi không muốn tạo một plugin mới, tôi chỉ muốn thêm các lớp trong Nop.Core Nop.Data Nop.Services và ... nhưng tôi không biết về quá trình này. Tôi chỉ muốn tạo dịch vụ và gọi dịch vụ để tải danh sách thả xuống của tôi trong Nop.Web hoặc Nop.plugin. – arlen

+0

Tôi có nên tạo một plugin mới cho thực thể mới trong cơ sở dữ liệu của tôi và tham chiếu nó trong các dự án khác như các plugin khác hoặc các dự án Nop.Web hoặc Admin thay vì thêm các lớp của tôi vào Nop.Core Nop.Data Nop.Services? – arlen

1

@Behnam Esmaili

trả lời câu trả lời hoàn hảo, nhưng bạn nên đối mặt với một vấn đề với việc tạo ra bộ điều khiển bởi vì bạn wan't có thể tạo ra một thể hiện từ IEntityService vì nopCommerce sử dụng Dependency Injection và điều này đang được điều khiển bởi AutoFac vùng chứa.

Vì vậy, bạn đã thông báo Check this post on nopCommerce forum, Điều đó sẽ hữu ích để giúp bạn hoàn thành công việc.

Có một ghi chú khác, Nếu bạn muốn tránh thực hiện thay đổi cơ sở dữ liệu bằng tay, bạn nên thực hiện các bước từ 1 đến 8 trên phiên bản mới của nopCommerce và cài đặt cơ sở dữ liệu sẽ được tạo với những thay đổi bạn đã thực hiện cho các mô hình.

3

Behnam Esmaili Giải pháp là đúng nhưng họ quên thêm một bước để đăng ký Mới được tạo Dịch vụ điều khiển trong Presentation ==> Nop.Web.Framework ==> DependencyRegistrar.cs như thế này

builder.RegisterType<EntityService>().As<IEntityService>().InstancePerHttpRequest();   
0

Một Bước còn lại Behnam Esmaili answer

Tạo bảng trong cơ sở dữ liệu NopCommerce.

Lưu ý: Tạo thủ công bảng trong cơ sở dữ liệu là cần thiết.

Cuối cùng, tạo bộ điều khiển và Chế độ xem của bộ điều khiển.

Nếu bạn muốn xem chi tiết hơn, hãy nhấp vào here!

Các vấn đề liên quan