MVC 3、插入之后、更新之前等

本文关键字:更新 之后 插入 MVC | 更新日期: 2023-09-27 18:27:58

请告诉我,我如何在asp.net mvc3中为模型执行"触发器"或"回调"?例如,我在数据库中有3个模型

public class Order
{
    public int ID { get; set; }
    public string order_num { get; set; }
    public virtual ICollection<Task> Tasks { get; private set; }
}
public class Task
{
    public int ID { get; set; }
    public int length { get; set; }
    public int sheets_num { get; set; }
    [Required]
    public int orderID { get; set; }
    [ForeignKey("orderID")]
    public virtual Order Order { get; set; }
    [Required]
    public int spoolID { get; set; }
    [ForeignKey("spoolID")]
    public virtual Spool Spool { get; set; }
}
public class Spool
{
    public int ID { get; set; }
    public string name { get; set; }
    public int weight { get; set; }
    public int weight_meter { get; set; }
    public virtual ICollection<Task> Tasks { get; set; }
}

在程序中,我创建了秩序——它有很多任务。当我创建任务时,它应该改变卷轴的重量

Task.Spool.Weight = Task.Spool.Weight - (Task.length * Task.sheets_num * Task.Spool.weight_meter)

当我删除订单时,它应该删除所有任务并更改假脱机的重量等以进行更新(假脱机重量=假脱机重量+旧任务重量-新任务重量)

我怎么能在asp中做这些事情?在rails中,我可以在模型中使用回调(after_update和其他)

MVC 3、插入之后、更新之前等

这实际上不是MVC中内置的东西,它更像是ORM中内置的内容,用于将模型映射到数据库行实体框架或LinqToSQL。

如果你想在没有ORM框架的情况下做到这一点,你必须自己编写代码。无论哪种方式,它都可能使用net事件,然后在模型的getter和setter中触发它们。