2010-12-02 84 views
1

我有一個名爲User的域對象,UserCreateViewModel.Automapper用於從ViewModel到用戶的映射。 一切工作正常。當映射完成我看到用戶域對象在用戶ID,CreatedOn和ModifiedOn值分別喜歡當域對象instainciated時從屬性生成默認值

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

這些是默認值,當我instainciate用戶對象。這會導致問題,因爲我的用戶對象無法從屬性獲取創建Guid和日期。

注:我不想硬編碼超過默認值。

是否有一個乾淨的方法來解決這個問題,以便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

看一看Automapper的BeforeMap和AfterMap功能。這些可能會幫助您自定義默認值的分配。

+0

是的,它的工作。多探索一下。 – Pirzada 2010-12-02 04:02:56