我的表有常见的列,如'Operation_Time','Create_User'。 而不是为我的实体对象的许多类型编写更新代码 - 即人物,地址等 - 我想写一个静态方法,它将采用一个实体对象并将更新其目标字段。使用Dataset,DataTable非常简单。
function updateEntityObjectsCommonFields(EntityObject obj)
{ /// just i guess
obj.Fields["Create_Usr"] = Session.Usr;
obj.Fields["Operation_Time"] = DateTime.Now;
obj.Fields["Last_Op_Usr"] = Session.Usr;
}
/// usage
updateEntityObjectsCommonFields(Person) ;
updateEntityObjectsCommonFields(Adres)
updateEntityObjectsCommonFields(Application) ; ;
任何解决方案?
提前谢谢?
答案 0 :(得分:0)
让您的实体实现一个通用接口,指定您需要的字段,并根据此接口编写更新功能。
public interface IAuditEntity
{
User CreateUsr { get; set;}
DateTime OperationTime { get; set;}
User LastOperationUser { get; set;}
}
public void UpdateEntityObjectsCommonFields(IAuditEntityobj)
{ /// just i guess
obj.CreateUsr = Session.Usr;
obj.OperationTime = DateTime.Now;
obj.LastOperationUser = Session.Usr;
}
您可以通过修改T4 template(如果它适用于所有实体)或让特定实体在partial class文件中实现您的界面来让他们实现界面。