2011-03-23 32 views
0

我有這兩個實體的域模型:觸發器與型號更新

零件和合同。

a合同有多個部分,一部分可能屬於許多合同。

我代表這樣說:

​​

每次在合約上部分改變時,合同的LastModifiedDate必須反映在其發生更改的日期。

哪種方式是更好的方法來處理? :

1 - 使用數據庫觸發器

(這允許我趕被零件製成,而無需通過我的應用程序來進行的修改的修改)使用所述模型以這樣的

2 - 或每當在零件級別進行更改時,我手動更改合同的LastModifiedDate?

3 - 是否有第三種方式可以使用兩種方式做事?

4 - 還有什麼我失蹤?

N.B:我爲實體層使用實體框架CTP4。

回答

2

我比NHibernate更熟悉NHibernate的實體框架,但通常的做法是與事件處理:你註冊一個委託運行之前對象被保存並使用這個委託來更新元數據。

如果您最終得到具有此類元數據的多個類,則可以創建一個名爲IHasUpdatedDate的接口。在我的項目中,我的所有實體都有WhenUpdated & WhenCreated字段。

好像實體框架不支持事件處理:

http://msdn.microsoft.com/en-us/library/cc716714.aspx

+0

這實際上是在EF可用兩個事件的唯一一個,但您的解決方案在EF工作爲好。 – 2011-03-23 22:52:12