我有一个实体模式,每个表格(50+表格)都有审计信息。
CreateDate
CreateUser
UpdateDate
UpdateUser
目前,我们计划更新审计信息。
注
if(changed){
entity.UpdatedOn = DateTime.Now;
entity.UpdatedBy = Environment.UserName;
context.SaveChanges();
}
但是,我正在寻求一个更加自动化的解决办法。 在进行节省开支期间,如果一个实体成立/更新,我想自动更新这些领域,然后将其送往数据库储存。
任何关于如何做到这一点的建议? 我宁愿不作任何思考,因为使用案文模板并不是问题。
有人提出解决办法,以压倒“拯救”并做它,但为了做到这一点,要么必须利用思考(我不想这样做)或得出基类。 假定我走这条路将如何做到这一点?
例如
EXAMPLE_DB_TABLE
CODE
NAME
--Audit Tables
CREATE_DATE
CREATE_USER
UPDATE_DATE
UPDATE_USER
并且,如果建立基类
public abstract class IUpdatable{
public virtual DateTime CreateDate {set;}
public virtual string CreateUser { set;}
public virtual DateTime UpdateDate { set;}
public virtual string UpdateUser { set;}
}
最终目标是能够做像......这样的事情。
public overrride void SaveChanges(){
//Go through state manager and update audit infromation
//FOREACH changed entity in state manager
if(entity is IUpdatable){
//If state is created... update create audit.
//if state is updated... update update audit
}
}
但我不敢肯定我如何制定扩大接口的守则。