2012-12-25 17 views
1

我有幾個實體誰繼承了與公共字段的基類象下面這樣:的DbContext行動之前申請

[DataType(DataType.Text)] 
[StringLength(100)] 
public string CreatedBy { get; set; } 

[DataType(DataType.DateTime)] 
public DateTime? CreatedDate { get; set; } 

[DataType(DataType.Text)] 
[StringLength(100)] 
public string ModifiedBy { get; set; } 

[DataType(DataType.DateTime)] 
public DateTime? ModifiedDate { get; set; } 

我想,以填補這些領域它去CONTEX權利之前。是否有一些事件/方法/處理程序可以重用,以便在實體放置到上下文之前對其執行一些操作? 我想這些字段在其添加到上下文時填充,而不是放到數據庫中。

解決方案:Entity Framework/SQL2008 - How to Automatically Update LastModified fields for Entities?

+0

[擴展基本類型並自動更新實體上的審計信息]的可能重複(http://stackoverflow.com/questions/2588544/extend-base-type-and-automatically-update-audit-information-on-entity ) –

+0

是的答案是在默認的構造函數中使用setter方法。基本上和我所建議的一樣。 – Mukus

回答

0

不知道100%您填寫這些字段上下文的意思,他們去到數據庫之前..但如果你想在某個時候,這些領域應該成爲其中的一部分堅持他們一個對象(實體),然後你可以使用setter方法填充poco。你可以隨時調用context.Save()/ Update()方法。

+0

例如,我創建了一個實體。這個實體(等等)繼承了具有指定字段的基類。所以我不想爲每個實體手動填充這些屬性。我更喜歡在DbContext的祖先的處理程序中放置填充邏輯(對於這4個屬性)以透明地填充它,並且不再考慮它。 –

+0

使用基類的構造函數並將這些值設置爲默認值。 – Mukus

+0

這裏有類似的帖子,可以幫助你 - http://stackoverflow.com/questions/3137738/how-to-set-default-value-for-pocos-in-ef-cf(看第二個和第三個答案) http://stackoverflow.com/questions/10135058/ef-4-3-code-first-how-to-set-default-value(看看接受的答案) – Mukus