I'm retrieving data with Simple.Data - which maps the database table to a dynamic object. I want to map the dynamic object to a simple type. I have tried this:
var dbObject = Database.Default.LocationStatus.FindByLocationStatusId(locationStatusId);
ILocationStatus domainObject = new LocationStatus();
domainObject.InjectFrom((object)dbObject);
But no properties in the domainObject are set. The mapping should be simple as the property names are the same, ei: dbObject.Name and domainObject.Name
Where am I going wrong? Note: I can in fact magically cast (duck typing?) (LocationStatus)dbObject but I'd like to know how to map with ValueInjecter. Thanks.
Strange as it may sound, I ran into this same problem a few days ago, and the solutions was simple.
You need to cast the output of your dynamic to the type your trying to map too.
In my case:
as shown in the post referenced in the comments above didn't work (I suspect with the same problem as the original poster), but when cast using as ...
Everything works fine.
So it seems even with the newer versions, 3+ years later this can still be an issue, and casting the output type is the fix.