【问题标题】:Generating default values from property when domain object instainciated域对象不染色时从属性生成默认值
【发布时间】:2010-12-02 11:37:46
【问题描述】:

我有一个名为 User 的域对象,并且 UserCreateViewModel.Automapper 用于从 ViewModel 映射到 User。 一切正常。映射完成后,我看到用户域对象分别在 UserId、CreatedOn 和 ModifiedOn 中具有值,例如

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

这些是我实例化用户对象时的默认值。这会导致问题,因为我的用户对象无法从属性 Get 创建 Guid 和 Dates。

注意:我不想硬编码高于默认值。

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

你明白我的问题

用户创建视图模型

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;
    }
}

【问题讨论】:

    标签: c# automapper


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2016-08-15
      • 1970-01-01
      • 1970-01-01
      • 2012-01-05
      • 2012-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-17
      相关资源
      最近更新 更多