我有以下表示表的实体类:数据库中的SystemUsers。 在这里,我使用带有nuget包的EntityFramework核心:Microsoft.EntityFrameworkCore.SqlServer(2.1.1)
public partial class SystemUsers
{
public SystemUsers()
{
SystemUserAssociatedCountries = new HashSet<SystemUserAssociatedCountries>();
}
public int SystemUserId
{
get;
set;
}
public string FirstName
{
get;
set;
}
public string LastName
{
get;
set;
}
public string Level
{
get;
set;
}
public string WorkPhoneNumber
{
get;
set;
}
public string MobilePhoneNumber
{
get;
set;
}
public string Location
{
get;
set;
}
public string Email
{
get;
set;
}
public int Role
{
get;
set;
}
public TimeSpan? TimeZone
{
get;
set;
}
public string CreatedBy
{
get;
set;
}
public DateTime CreatedDate
{
get;
set;
}
public string UpdatedBy
{
get;
set;
}
public DateTime UpdatedDate
{
get;
set;
}
public virtual ICollection<SystemUserAssociatedCountries> SystemUserAssociatedCountries
{
get;
set;
}
这里是公开给客户端应用程序以发送数据的输入类。
public class UpdateSystemUserCommand : IRequest<UpdateSystemUserCommandResponse>
{
[Required]
[Range(0, int.MaxValue, ErrorMessage = "Only positive number allowed")]
public int SystemUserId
{
get;
set;
}
[RegularExpression(Constants.GeneralStringRegularExpression)]
[Required]
public string FirstName
{
get;
set;
}
[RegularExpression(Constants.GeneralStringRegularExpression)]
[Required]
public string LastName
{
get;
set;
}
[RegularExpression(Constants.GeneralStringRegularExpression)]
public string Level
{
get;
set;
}
[RegularExpression(Constants.GeneralStringRegularExpression)]
public string WorkPhoneNumber
{
get;
set;
}
[RegularExpression(Constants.GeneralStringRegularExpression)]
public string MobilePhoneNumber
{
get;
set;
}
[RegularExpression(Constants.GeneralStringRegularExpression)]
[Required]
public string Location
{
get;
set;
}
[Required]
[EmailAddress(ErrorMessage = "Invalid EmailId")]
public string Email
{
get;
set;
}
[Required]
public SystemUserRole Role
{
get;
set;
}
[Required]
[Range(0, int.MaxValue, ErrorMessage = "Only positive number allowed")]
public int HomeCountry
{
get;
set;
}
[Required]
public List<int> Countries
{
get;
set;
}
}
public class UpdateSystemUserCommandResponse : CommandResponse
{
[JsonProperty("UpdatedStatus")]
public string UpdatedStatus
{
get;
set;
}
}
我正在使用Automapper将传入数据映射到上述实体类。
public class MappingProfile : Profile
{
public MappingProfile()
{
CreateMap<UpdateSystemUserCommand, SystemUsers>().ForMember(dest => dest.FirstName, source => source.MapFrom(src => src.FirstName)).ForMember(dest => dest.LastName, source => source.MapFrom(src => src.LastName)).ForMember(dest => dest.Level, source => source.MapFrom(src => src.Level)).ForMember(dest => dest.WorkPhoneNumber, source => source.MapFrom(src => src.WorkPhoneNumber)).ForMember(dest => dest.MobilePhoneNumber, source => source.MapFrom(src => src.MobilePhoneNumber)).ForMember(dest => dest.Location, source => source.MapFrom(src => src.Location)).ForMember(dest => dest.Role, source => source.MapFrom(src => Convert.ToInt32(src.Role)));
}
}
现在,当尝试通过以下处理程序更新值时,我看到用户对象设置了CreatedDate和CreatedBy的默认值
public class UpdateUserCommandHandler : IRequestHandler<UpdateSystemUserCommand, UpdateSystemUserCommandResponse>
{
private readonly IIntegrationEventPublisherServiceService _eventcontext;
private readonly SystemUserRepository _systemUserRepository;
private readonly IMapper _mapper;
public UpdateUserCommandHandler(IIntegrationEventPublisherServiceService eventcontext, IMapper mapper)
{
_systemUserRepository = new SystemUserRepository(new TaxatHand_StgContext());
_eventcontext = eventcontext;
_mapper = mapper;
}
public async Task<UpdateSystemUserCommandResponse> Handle(UpdateSystemUserCommand request, CancellationToken cancellationToken)
{
using (var scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
{
var userExists = _systemUserRepository.UserExists(request.Email);
if (!userExists)
{
throw new RulesException("email", @"User with email address :" + request.Email + " does not exists");
}
var user = _mapper.Map<SystemUsers>(request);
user.UpdatedBy = "CMS Admin";
user.UpdatedDate = DateTime.UtcNow;
_systemUserRepository.Update(user);
await _systemUserRepository.UnitOfWork.SaveEntitiesAsync();
}
}
}
public partial class TestDBContext : DbContext,IUnitOfWork
{
public virtual DbSet<SystemUsers> SystemUsers { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<SystemUsers>(entity =>
{
entity.HasKey(e => e.SystemUserId)
.HasName("PK_dbo.SystemUsers");
entity.Property(e => e.CreatedDate).HasColumnType("datetime");
entity.Property(e => e.UpdatedDate).HasColumnType("datetime");
});
}
}
有人可以帮助我知道为什么在这种情况下要设置默认值吗?