AutoMapper - 如何在映射期间操纵给定类型的所有值?

时间:2010-08-14 14:16:46

标签: c# linq-to-sql automapper

关于Automapper的快速提问。

我正在映射来自传入Web服务的数据,其中datetimes字段不为null,但有时会将DateTime.MinValue的值作为解决方法(我不拥有此服务,所以我很怜悯我耽心)。我正在从这些对象映射到基于服务描述创建的数据库模型创建的Linq To Sql对象。

一切正常,直到我尝试提交在datetime字段上设置DateTime.MinValue的新行。当然,解决方案是将DateTime.MinValue替换为SqlDateTime.MinValue.Value,作为DateTime.MinValue上的Sql Server阻塞。

我想通过映射自动执行此操作...即,在传入的Web服务调用中的任何日期时间字段中替换它,而不必逐个字段地指定。< / p>

格式化程序不会这样做,因为它们只处理字符串格式化,而IValueResolver似乎也没有做我需要的。这似乎是每个父类型实例调用一次,而不是类型中的每个字段(我试图将它与.ForAllMembers()一起使用)。也许我做错了什么。

如果NullSubstitute方法是通用的 - 也就是说,如果签名类似于替换&lt; T,Func&lt; T,T&gt;&gt;,那么我认为我会开展业务。

文档/在线样本没有提供太多方向......虽然我可以开始挖掘源代码,但我希望有更深入了解系统的人可以发表评论(吉米?)。

我认为像这样的东西应该在某个地方成为一个特征,但是再一次,可能还有其他一些问题会使实现这样的事情变得复杂。

提前感谢您的任何帮助。

1 个答案:

答案 0 :(得分:0)

TypeConverter会有帮助吗?