лучший способ установить значение базового свойства в asp.net mvc 5 - PullRequest
0 голосов
/ 14 октября 2018

У меня есть проект asp.net mvc с UnitOfWork и 4 уровнями: 1. Уровень данных 2. Класс домена 3. Уровень обслуживания 4. Уровень пользовательского интерфейса (Controller, View, ...) У меня есть базовый класс для общих свойствнапример, 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; }
}

Я хочу, чтобы при вставке записи устанавливалось значение для CreatedBy и CreatedDate, а при обновлении записи устанавливалось значение для ModifiedBy, ModifiedDate.я не знаю как это сделать?я не знаю, какой слой это сделать?спасибо х.

1 Ответ

0 голосов
/ 15 октября 2018

я знаю два решения. Но я не знаю, какое из них лучше. решение 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: я задаю значения на уровне пользовательского интерфейса (в контроллере)и передать Entity в класс репозитория, но я не знаю, как это реализовать.спасибо х.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...