2011-10-14 143 views
2

我使用Simple.Data檢索數據 - 它將數據庫表映射到動態對象。 我想將動態對象映射到一個簡單的類型。我試過這個:使用ValueInjecter映射動態對象

var dbObject = Database.Default.LocationStatus.FindByLocationStatusId(locationStatusId); 
ILocationStatus domainObject = new LocationStatus(); 
domainObject.InjectFrom((object)dbObject); 

但是沒有設置domainObject中的任何屬性。 映射應該是簡單的屬性名稱相同,EI:dbObject.Name和domainObject.Name

我要去哪裏錯了? 注意:其實我可以魔術般地施放(duck typing?)(LocationStatus)dbObject,但我想知道如何使用ValueInjecter進行映射。謝謝。

+1

它應該工作,如果屬性具有相同的名稱和類型,看看這裏:http://valueinjecter.codeplex.com/discussions/240346 – Omu

+1

咋,這就是我的原始代碼。我肯定錯過了什麼。感謝您的幫助查克。 –

回答

0

聽起來很奇怪,幾天前我遇到了同樣的問題,解決方案很簡單。

您需要將動態輸出轉換爲您嘗試映射的類型。

在我的情況:

WeatherData myData = new WeatherData().InjectFrom((object)weatherData); 

如在評論中引用上面沒有工作(我懷疑有同樣的問題,因爲原來的海報)的職位,但作爲使用時投...

WeatherData myData = new WeatherData().InjectFrom((object)weatherData) as WeatherData; 

一切工作正常。

因此,即使是較新的版本,3年以後這仍然是一個問題,並且投射輸出類型是修復。