我正在创建一个项目与React和。净核心,我想添加跟踪用户行为的功能。
我只想知道是谁添加的产品?是谁更新的?是谁删除的?
我脑子里有两个选择,哪一个更好,我不知道
1-在. Net中创建类似触发器的跟踪机制
public class ActivityType
{
public int ActivityTypeId { get; set; }
public string ActivityTypeName { get; set; }//Added,Updated
}
public class Activity
{
public int ActivityId { get; set; }
public DateTime ActivityTime { get; set; }
public int ActivityTypeId { get; set; }
public ActivityType ActivityType { get; set; }
}
public class ProductActivity
{
public int ProductActivityId { get; set; }
public virtual Product Product{ get; set; }
public int ProductId { get; set; }
public int ActivityId { get; set; }
public virtual Activity Activity { get; set; }
public virtual User User { get; set; }
public int UserId { get; set; }
}
在产品控制器内部〉添加产品
[HttpPost("add")]
public async Task<ActionResult<Product>> Add(Product product)
{
var result = _productService.Add(product);
if (result.Success)
{
//example code
//var newActivity=_context.ProductActivity
//{
//productId:result.Data.Id
//ActivityId:1 //added
//User:1
//})
//_context.ProductActivity.Add(newActivity);
//_context.SaveChanges();
return Ok(result);
}
}
2-在React中创建跟踪机制,使用操作函数(redux)
如果我选择这种方式,我必须创建ProductActivity控制器和端点,然后我将在react中点击此端点。
const createProduct = async () => {
const tokenResponce = await productService.createProduct({
productName:"x" ,
});
if(tokenResponce)
{
dispatch(addedProduct());
}
else
{
console.log("error");
}
};
1条答案
按热度按时间2sbarzqh1#
我猜想您可能希望在某个地方保持跟踪,在这种情况下,最好在服务器上进行跟踪(选项1)据我所知,您不需要在前端做任何事情,因为后端知道哪个用户调用每个方法(我假设用户已经登录)。因此,您将在每个create方法中获取当前登录用户的标识产品的(添加)、读取(获取)、更新、删除(CRUD)