域对象自动化时从属性生成默认值

时间:2010-12-02 03:23:19

标签: c# automapper

我有一个名为User的User对象,UserCreateViewModel.Automapper用于从ViewModel到User的映射。 一切都很好。映射完成后,我看到User域对象的值分别为UserId,CreatedOn和ModifiedOn,如

00000000-0000-0000-0000-000000000000
1/1/0001 12:00:00 AM
1/1/0001 12:00:00 AM

当我实现用户对象时,这些是默认值。这会导致问题,因为我的User对象无法从属性Get。

创建Guid和Dates

注意:我不想硬编码以上默认值。

是否有一个干净的方法来解决这个问题,以便UserId,CreateOn和ModifedOn从属性中生成值?

我了解我的问题

UserCreateViewModel

public class UserCreateViewModel
{
    public string UserName { get; set; }
    public string Password { get; set; }
}

用户

private Guid? _guid;
public Guid? UserId
{
    get
    {
        return (_guid.HasValue) ? _guid.Value : Guid.NewGuid();
    }
    set
    {
        _guid = value;
    }
}

public string UserName { get; set; }
public string Password { get; set; }

private DateTime? _createdOn;
public DateTime? CreatedOn
{
    get
    {
        return (_createdOn.HasValue) ? _createdOn.Value : DateTime.Now;
    }
    set
    {
        _createdOn = value;
    }
}

private DateTime? _modifiedOn;
public DateTime? ModifiedOn
{
    get
    {
        return (_modifiedOn.HasValue) ? _modifiedOn.Value : DateTime.Now;
    }
    set
    {
        _modifiedOn = value;
    }
}

1 个答案:

答案 0 :(得分:1)

查看Automapper的BeforeMap和AfterMap功能。这些可能有助于您自定义默认值的分配。