2012-03-14 9 views
0

私にしてください教えて、私はasp.netのmvc3のモデルのための「トリガ」または「コールバック」を行うことができますどのように? は例えば、私は、DBの3つのモデルプログラムでMVC 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) 

の重量を変更する必要があり、私は順序を削除する場合 - WeightOfNewTask - それは(spool.weight = spool.weight + WeightOfOldTaskすべてのタスクを削除して、更新のためのスプールとなどの重量を変更する必要があります)

どのように私はASPでこれを行うことができますか?レールでは、モデル(after_updateなど)でコールバックを使用できます

答えて

1

これは実際にMVCに組み込まれているものではなく、モデルをデータベース行にマップするために使用したORMに組み込まれているものフレームワークまたはLinqToSQL。あなたはORMフレームワークなしにこれをしたい場合は

あなたはこの自分のためのコードを記述する必要があります。いずれにしても、ネットeventsを使用して、モデルのゲッターとセッターでトリガーします。

関連する問題