簡體   English   中英

將 SOAP Object 轉換為 EF 表用於數據庫插入

[英]Converting SOAP Object into an EF Table for Database Insertion

我有一組從 web 服務返回的自定義對象。 對象在數據庫中建模,我使用 model 創建了 edmx 文件。

有沒有一種通用的方法可以將這些對象放入它們各自的 EF 容器中?

有大約 50 種不同類型的對象(每種有 20-30 個成員)從我返回,我寧願不創建 class 來轉換每個對象。 我嘗試了幾種不同的轉換方式,但由於 AddObject 不采用數組,我很難過。

private MyEntities dbContext;
ResponseObject[] TheResponses;
using (MyWebService wsInstance = new MyWebService())
{
    TheResponses = wsInstance.DoStuff();
    dbContext = new MyEntities();

    dbContext.Table1of50.AddObject(<whatgoeshere>);
}

通用方法是使用AutoMapper ,但即使此解決方案也會有一些限制,具體取決於返回和持久 object 之間的差異。 手動解決方案是適配器模式——也許這個解決方案也可以通過編寫自定義 T4 模板來自動完成,但它再次取決於返回和持久 object 之間的差異。 另一種可能性是覆蓋反序列化,以便創建類的實例而不是自動生成的類(這主要意味着創建自定義代理)。

所以有很多方法可以做到這一點,但它們嚴格依賴於返回對象和持久對象之間的差異以及模式。 如果所有相關類對之間的差異沒有相同的症狀,那么您幾乎無法進行任何自動化。

您可以做的是調整 web 服務,以便他已經創建了您的 EF 對象,您可以將其直接添加到您的實體上下文中(帶附件)。 但這意味着您的網絡服務必須知道您的 EF 類型。

如果這不適用,您將不得不創建您的對象...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM