我是ASP.NET的新手,我想知道是否有人可以解释Insert
如何使用存储过程工作。我正在使用Dapper。
我有这样的产品型号:
using Dapper.Contrib.Extensions;
using System;
namespace Dto.Entities.Products
{
[Table("Product.ProductDetail")]
public class ProductDetail
{
[Key]
public int ProductDetailId { get; set; }
public int ProductId { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}
}
现在可以有人解释我如何使用存储过程在控制器中插入?此致
答案 0 :(得分:1)
最快的方法是按照你的说法处理控制器中的所有逻辑:
[HttpPost]
public async Task<IHttpActionResult> Post([FromBody]ProductDetail payload)
{
using (var connection = new SqlConnection("<your_connectionstring>"))
{
var parameters = new
{
ProductId = payload.ProductId,
Name = payload.Name,
Description = payload.Description
};
await connection.ExecuteAsync("<your_insert_sp>", parameters, commandType: CommandType.StoredProcedure).ConfigureAwait(false);
}
return Ok();
}
这不是推荐的方法。
您应始终使用dto类而不是真实数据模型作为进入或离开控制器的类型。
此外,db逻辑应移出控制器之外,例如移动到存储库类。或者,您可以使用Mediatr将您的逻辑从您的操作中移开,并保留您的控制器thin。