2013-03-14 52 views
0

用於填寫審計字段的通用方法用於填寫審計字段的通用方法

我想填寫每個實體在添加或修改時的審計字段。

例如,Customer實體具有CreatedDate,UpdatedDate。 訂單實體具有CreatedDate,UpdatedDate

我可以在AddCustomerUpdateCustomer方法或NewOrder, UpdateOrder方法更新它們。

對於AddCustomer

customer.CreatedDate = DateTime.Now; 
customer.UpdatedDate= DateTime.Now; 

對於UpdateCustomer

customer.UpdatedDate= DateTime.Now 

我想要做的,而不是在每一個方法重複代碼,可我有一個接受泛型類型和更新泛型方法?

private void FillAuditFields<T>(ref T entity) 
{ 
} 

我應該做的FillAuditFields內(如果我可以)說entity.CreatedByentity.UpdatedBy。還是有更好的方法來做到這一點?

感謝您的幫助

回答

1

讓你的實體實現你想要的所有實體集和限制t若要實現使用「其中」條款,接口類的字段的接口。

+0

感謝CodeCaster。 – user2170952 2013-03-14 19:14:52

2

無需仿製藥的一切,你只需要你的客戶& Order類實現一個接口,如:

public interface IAuditable 
{ 
    DateTime CreatedDate{get;set;} 
    DateTime UpdatedDate{get;set;} 
} 

並有2種方法適宜的地方

public void AuditableCreated(IAuditable auditable) 
{ 
    auditable.CreatedDate = DateTime.Now; 
} 
public void AuditableUpdated(IAuditable auditable) 
{ 
    auditable.UpdatedDate = DateTime.Now; 
} 
+0

謝謝傑米。這對我有用。 – user2170952 2013-03-14 19:13:38