2013-10-29 88 views
3

從存儲過程返回的數據具有重複數據的3列:使用AutoMapper將平面結構映射到對象?

Name | Address | PhoneNumber | UniqueCol1 | UniqueCol2 

理想我希望我的模型表明,僅由存儲一次的值重複的數據,並具有獨特的數據集合。

public class MyViewModel 
{ 
    public string Name {get;set;} 
    public string Address {get;set;} 
    public string PhoneNumber {get;set;} 
    public List<MyModel> UniqueData {get;set;} 

    public class MyModel 
    { 
    public string UniqueCol1 {get;set;} 
    public string UniqueCol2 {get;set;} 
    } 
} 

這意味着我要結果的集合映射到MyViewModel的單個對象:

return Mapper.Map<List<StoredProcedureObject>, MyViewModel>(result); 

這是我得到我的錯誤,因爲我以爲我有一些配置,我需要做的:

Mapping types: 
List`1 -> MyViewModel 

任何關於缺少這個工作的步驟的想法?

回答

1

Automapper只能將你的結構扁平化爲更簡單的東西。但是將一個簡單的類映射到更具體的東西是不可能的。

我建議只需要在你的表中的第一項填寫您的基本領域,如NameAddressPhoneNumber和迭代您的結果來填補你的UniqueData名單。
我沒有看到更簡單的方法,因爲對於每個可能的映射並且沒有使用單獨的循環,您將多次獲取基礎數據。

如果你不介意使用其他工具,也許你會看看ValueInjecter。我聽說你可以使用這個工具進行雙向映射。

+1

謝謝,我還沒有聽說過價值觀。我會研究一下。 – KevinUK

相關問題