使用ValueInjecter映射动态对象

时间:2011-10-14 11:01:38

标签: mapping valueinjecter

我正在使用Simple.Data检索数据 - 它将数据库表映射到动态对象。 我想将动态对象映射到一个简单的类型。我试过这个:

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

但是没有设置domainObject中的属性。 映射应该简单,因为属性名称相同,ei:dbObject.Name和domainObject.Name

我哪里错了? 注意:我实际上可以神奇地投射(鸭子打字?)(LocationStatus)dbObject,但我想知道如何使用ValueInjecter进行映射。感谢。

1 个答案:

答案 0 :(得分:0)

听起来很奇怪,几天前我遇到了同样的问题,解决方案很简单。

您需要将动态输出转换为您尝试映射的类型。

就我而言:

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

如上面评论中引用的帖子所示,没有工作(我怀疑与原始海报有同样的问题),但是当使用as ...

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

一切正常。

所以即使使用较新的版本,3年多以后这仍然是一个问题,并且输出类型是修复。