0

下午好。

我将 270 发送到该州(密歇根州)并接收 271,然后将其转换为 271 的 4010 版本,以便旧版 Web 服务可以尝试吸收数据。Web 服务使用 dbml 和 LINQ 将消息转换为一系列表示数据库的类,在转换发生后它执行事务并更新客户端。但是我收到一条错误消息:

适配器无法传输要发送端口“SendEDI”的消息,URL 为“http://biz05/WriteEligibilityResponse/service.svc”。它将在为此发送端口指定的重试间隔后重新传输。详细信息:“System.ServiceModel.FaultException:a:InternalServiceFault尝试删除 X12_NM1 和 X12_271_2120C 之间的关系。但是,关系的一个外键 (X12_271_2120C.X12_NM1_Id) 不能设置为 null。尝试删除 X12_NM1 和 X12_271_2120C 之间的关系。但是,关系的其中一个外键 (X12_271_2120C.X12_NM1_Id) 不能设置为 null。在 EligibilityLookup.Service.ResponseToSQL.WriteResponse(Message message)

在 SyncInvokeWriteResponse(对象,对象 [],对象 [])

在 System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(对象实例,对象 [] 输入,对象 [] 和输出)

在 System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin (MessageRpc& rpc)

在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)

在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc& rpc)

在 System.ServiceModel.Dispatcher.MessageRpc.Process(布尔 isOperationContextSet)System.InvalidOperationException

在 Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfClient`2.RequestCallback(IAsyncResult 结果)"。

请记住,我无法更改 LINQ 代码(我无法编辑客户端作为管理说明的一部分,重建前端是项目的第 2 阶段)是否有任何建议的方法来解决这个问题?我已经删除了地图中此元素的 5010 到 4010 链接,我也不关心是否将完整的 271 数据集放入旧系统。

4

1 回答 1

0

只是用谷歌搜索了这个错误:http: //blogs.msdn.com/b/bethmassi/archive/2007/10/02/linq-to-sql-and-one-to-many-relationships.aspx

如果您无法更改 linq 模型,那么您似乎必须将数据映射到您发送到 Web 服务的 4010 文档中,以便将数据填充到映射到 X12_271_2120C 表的 X12_NM1 中。

于 2012-01-13T13:28:37.553 回答