如何更新不同类型的实体对象的公共属性?

时间:2012-01-04 11:51:24

标签: c# entity-framework-4

我的表有常见的列,如'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) ; ;

任何解决方案?

提前谢谢?

1 个答案:

答案 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文件中实现您的界面来让他们实现界面。