我正在创建一个包含众多业务实体的应用程序。我想确保每次修改一个时,我都会相应地对记录加时间戳并放置创建/修改用户。我为这些实体提供了一组实体和服务类。所有实体都实现IBaseEntity并继承BaseService。
public interface IBaseEntity
{
int Id { get; set; }
DateTime CreatedOn{ get; set; }
DateTime LastModifiedOn { get; set; }
Employee CreatedBy { get; set; }
Employee LastModifiedBy { get; set; }
}
public abstract class BaseService
{
public void Create(IBaseEntity entity)
{
entity.CreatedBy = new Employee { Id = entity.Id };
entity.CreatedOn = DateTime.UtcNow;
entity.LastModifiedBy = new Employee { Id = entity.Id };
entity.LastModifiedOn = DateTime.UtcNow;
}
}
在我的EmployeeService中,我会在添加或附加实体之前调用我的基本Update和Create方法。
public Employee Create(Employee employee)
{
// Create User
base.Create(employee);
context.Employees.Add(employee);
context.SaveChanges();
}
理想情况下,我想通过引用传递实体,但我知道这是不可能的。我的问题是,我如何实现这一点,以便我可以集中这些代码,而不必在每个服务类中实现。
答案 0 :(得分:1)