2

我正在使用 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 进行映射。谢谢。

4

1 回答 1

0

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

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

就我而言:

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

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

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

一切正常。

因此,即使使用较新的版本,3 年后这仍然可能是一个问题,并且转换输出类型是解决方法。

于 2015-05-14T00:11:14.960 回答