在 asp.net MVC 5 中设置值基类属性的最佳方法



我有一个 asp.net MVC 项目,其中包含 UnitOfWork 和 4 层: 1.数据层 2. 域名类 3. 服务层 4. UI 层(控制器、视图等( 我有一个共享属性的基类,如 Id、CreatedBy、CreatedDate、ModifiedBy、ModifiedDate:

public class BaseClass
{
public int Id { get; set; }
public int CreatedBy { get; set; }
public DateTime CreatedDate { get; set; }
public int ModifiedBy { get; set; }
public DateTime ModifiedDate { get; set; }
}
public class Customer : BaseClass
{
public string FullName { get; set; }
public string Phone { get; set; }
}

我希望在插入记录时,为创建者和创建日期设置值,当记录更新时,为修改者,修改日期设置值。 我不知道该怎么做? 我不知道该做哪一层? 谢谢。

我知道两种解决方案。但我不知道哪个更好。解决方案 1: 在数据层和存储库类中,我为它们设置值:

public class EFRepository<T> : IRepository<T> where T : class
{
IUnitOfWork _unitOfWork;
IDbSet<T> _entities;
public EFRepository(IUnitOfWork unitOfWork)
{
_unitOfWork = unitOfWork;
_entities = _unitOfWork.Set<T>();
}
public int Add(T entity)
{
(entity as BaseClass).CreatedDate = DateTime.Now;
(entity as BaseClass).RowState = DomainClasses.Enums.State.Confirmed;
_entities.Add(entity);
return _unitOfWork.SaveChanges();
}
public int Delete(T entity)
{
(entity as BaseClass).RowState = DomainClasses.Enums.State.Canceled;
_unitOfWork.MarkAsChanged<T>(entity);
return _unitOfWork.SaveChanges();
}
}

解决方案 2:我在 UI 层(在控制器中(中设置值并将实体传递给存储库类,但我不知道如何实现它。 谢谢。

最新更新