我試圖使用AutoMapper從DTO的映射到自己的網域的ISet NHibernate的映射到IList中。如何簡單地使用AutoMapper
我的DTO的可能是這樣的:
public class MyDTO
{
public string Name { get; set; }
public bool OtherProperty { get; set; }
public ChildDTO[] Children { get; set;}
}
public class ChildDTO
{
public string OtherName { get; set; }
}
我的域對象是這樣的:
public class MyDomain
{
public string Name { get; set; }
public bool OtherProperty { get; set; }
public ISet<ChildDomain> Children { get; set; }
}
public class ChildDomain
{
public string OtherName { get; set; }
}
我將如何設置AutoMapper要能夠從這些陣列的映射設置的。看起來像AutoMapper正在使用Array並將它們轉換爲IList,然後在轉換爲ISet時失敗。
這裏的
Unable to cast object of type 'System.Collections.Generic.List`1[DataTranser.ChildDTO]' to type 'Iesi.Collections.Generic.ISet`1[Domain.ChildDomain]'.
我希望能找到一個簡單通用的方法來做到這一點,這樣我可以儘量減少從DTO對域圖所需的基礎設施除外。任何幫助是極大的讚賞。
UPDATE:
於是我將如何模型MYDOMAIN - > ChildDomain而不貧血的域模型結束了?我明白,如果沒有MyDomain或ChildDomain中的業務邏輯,領域模型目前處於貧困狀態,但目標是在我們前進時添加業務邏輯。我只想確保我的視圖模型可以轉換爲域模型並保持。
你會建議這個方案是什麼,從視野和領域,後來在業務規則之間加入一個簡單的映射移動?再次
感謝您的幫助。
而你的automapper配置是...? – Paco 2009-11-09 19:42:33
映射僅針對單個項目進行定義: Mapper.CreateMap(); Mapper.CreateMap (); 不知道如何去創建Set的映射,這是問題的基本前提。感謝您的幫助。 –
Kas
2009-11-09 20:14:18
我確實嘗試了Mapper.CreateMap(),並且以例外 –
Kas
2009-11-09 20:29:31