我试图使用WCF Oracle适配器在Oracle表中插入数据。该表有一个DateTime字段。我使用区分字段在业务流程中设置字段的值,然后将消息发送到配置为使用WCF Oracle适配器的发送端口。BizTalk WCF Oracle适配器:发送日期时间值
这给了我,当消息被发送到Oracle以下错误:
价值领域是无效的。 DateTime.Kind必须是DateTimeKind.Unspecified。确保DateTime值中不包含TimeZone或TimeZoneOffset。
我试图用这个来迫使DateTimeKind是不确定:
msg.ProcessedDateTime = System.DateTime.SpecifyKind(
System.DateTime.Now.ToLocalTime(),
System.DateTimeKind.Unspecified);
,但我仍然得到同样的错误消息。
我还可以看到,对于该消息生成的XML使用的日期的格式如下:YYYY-MM-DDTHH:MM:ss.ffffffZ
这个问题似乎是与Z在的端部字符串,它指定一个时区(格林尼治标准时间+0)
我不能简单地分配给“ProcessedDateTime”属性一个任意的字符串(我可以控制的格式),因为模式定义字段为xs: dateTime,所以编排要求我使用System.DateTime值。
如何强制System.DateTime表示到而不是包含任何时区信息?请注意,我无法直接控制该表示,因为DateTime通过BizTalk转换为字符串,而不是由我的代码转换。