2015-06-21 104 views
1

我正在使用nopCommerce 3.50。我在nopCommerce中實現了插件。我在SQL服務器中創建了存儲過程。現在我想通過代碼從插件創建存儲過程。當安裝插件時,它會創建存儲過程。從NopCommerce插件創建存儲過程

如何從nopCommerce中的插件創建存儲過程?

+2

嘗試製作sql腳本文件並在插件安裝時運行它 –

回答

2

參考股票插件Nop.Plugin.Shipping.ByWeight

你的ObjectContext將有一個安裝()方法,用它來創建存儲過程。在卸載方法中刪除它。

public string CreateDatabaseScript() 
    { 
     return ((IObjectContextAdapter)this).ObjectContext.CreateDatabaseScript(); 
    } 

    /// <summary> 
    /// Install 
    /// </summary> 
    public void Install() 
    { 
     //create the table 
     var dbScript = CreateDatabaseScript(); 
     Database.ExecuteSqlCommand(dbScript); 
     SaveChanges(); 
    } 

    /// <summary> 
    /// Uninstall 
    /// </summary> 
    public void Uninstall() 
    { 
     //drop the table 
     var tableName = this.GetTableName<ShippingByWeightRecord>(); 
     //var tableName = "ShippingByWeight"; 
     this.DropPluginTable(tableName); 
    } 
0

參考Nop.Service.CAtalog.ProductService

var products = _dbContext.ExecuteStoredProcedureList<Product>(
        "ProductLoadAllPaged", 
        pCategoryIds, 
        pManufacturerId, 
        pStoreId, 
        pVendorId, 
        pWarehouseId, 
        pParentGroupedProductId, 
        pProductTypeId, 
        pVisibleIndividuallyOnly, 
        pProductTagId, 
        pFeaturedProducts, 
        pPriceMin, 
        pPriceMax, 
        pKeywords, 
        pSearchDescriptions, 
        pSearchSku, 
        pSearchProductTags, 
        pUseFullTextSearch, 
        pFullTextMode, 
        pFilteredSpecs, 
        pLanguageId, 
        pOrderBy, 
        pAllowedCustomerRoleIds, 
        pPageIndex, 
        pPageSize, 
        pShowHidden, 
        pLoadFilterableSpecificationAttributeOptionIds, 
        pFilterableSpecificationAttributeOptionIds, 
        pTotalRecords); 

它調用productloadallpaged存儲過程。