Stored procedures 从NopCommerce插件创建存储过程
我使用的是nopCommerce 3.50。我在nopCommerce中实现了插件。我已经在SQL server中创建了存储过程。现在我想通过代码从插件创建存储过程。安装插件后,它将创建存储过程Stored procedures 从NopCommerce插件创建存储过程,stored-procedures,nopcommerce,Stored Procedures,Nopcommerce,我使用的是nopCommerce 3.50。我在nopCommerce中实现了插件。我已经在SQL server中创建了存储过程。现在我想通过代码从插件创建存储过程。安装插件后,它将创建存储过程 如何从nopCommerce中的插件创建存储过程?请参阅库存插件Nop.plugin.Shipping.ByWeight ObjectContext将有一个Install()方法,使用该方法创建存储过程。在卸载方法中删除它 public string CreateDatabaseScript()
如何从nopCommerce中的插件创建存储过程?请参阅库存插件Nop.plugin.Shipping.ByWeight ObjectContext将有一个Install()方法,使用该方法创建存储过程。在卸载方法中删除它
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);
}
公共字符串CreateDatabaseScript()
{
返回((IObjectContextAdapter)this.ObjectContext.CreateDatabaseScript();
}
///
///安装
///
public-void-Install()
{
//创建表
var dbScript=CreateDatabaseScript();
ExecuteSqlCommand(dbScript);
保存更改();
}
///
///卸载
///
public-void卸载()
{
//放下桌子
var tableName=this.GetTableName();
//var tableName=“按重量发货”;
此.DropPluginTable(表名);
}
请参阅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);
var products=\u dbContext.ExecuteStoredProcedureList(
“ProductLoadAllPaged”,
pCategoryIds,
pManufacturerId,
pStoreId,
pVendorId,
普瓦雷豪塞德,
pParentGroupedProductId,
pProductTypeId,
可单独查看,
pProductTagId,
p特色产品,
pPriceMin,
pPriceMax,
PKEYWORKS,
pSearchDescriptions,
普塞奇库,
pSearchProductTags,
puseveltextsearch,
pFullTextMode,
pFilteredSpecs,
普兰瓜吉德,
波德比,
pAllowedCustomerRoleIds,
pPageIndex,
pPageSize,
pShowHidden,
pLoadFilterableSpecificationAttributeOptionIds,
pFilterableSpecificationAttributeOptionIds,
上睑下垂记录);
它调用productloadallpaged
存储过程。这将起作用
public class SearchEngineData : ISearchEngineData
{
private readonly IDbContext _dbContext;
public SearchEngineData(IDbContext dbContext){
_dbContext = dbContext;
}
private List<ElasticStoreMapping> GetStoreMappingsForProducts(int[] productIds)
{
var pProductIds = _dataProvider.GetParameter();
pProductIds.ParameterName = "ProductIds";
pProductIds.Value = productIds == null ? string.Empty : string.Join(",", productIds);
pProductIds.DbType = DbType.String;
return _dbContext.SqlQuery<ElasticStoreMapping>($"Exec GetStoreMappingForElastic @ProductIds", pProductIds).ToList();
}
}
公共类SearchEngineData:IsearchineData
{
私有只读IDbContext _dbContext;
公共搜索引擎数据(IDbContext dbContext){
_dbContext=dbContext;
}
私有列表GetStoreMappingsForProducts(int[]ProductId)
{
var pProductIds=_dataProvider.GetParameter();
pProductIds.ParameterName=“ProductIds”;
pproductId.Value=productId==null?string.Empty:string.Join(“,”,productId);
pProductIds.DbType=DbType.String;
返回_dbContext.SqlQuery($“Exec getstoremappingforelistic@ProductIds”,pProductIds).ToList();
}
}
尝试创建sql脚本文件,并在插件安装时运行它