MVC 3,插入后,更新前等

时间:2012-03-14 13:40:13

标签: c# asp.net-mvc-3

请告诉我,我如何为asp.net mvc3中的模型做“触发”或“回调”? 例如,我在db

中有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)

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

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

1 个答案:

答案 0 :(得分:1)

这不是构建在MVC中的东西,它更像是用于将模型映射到数据库行Entity Framework或LinqToSQL的ORM中构建的内容。

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