簡體   English   中英

WCF服務與DataContracts VS默認實體框架實體對象

[英]WCF Service with DataContracts VS Default Entity Framework Entities Object

將WCF服務與DataContracts VS實體框架實體對象一起使用的利弊是什么?

如果我使用ADO.net自我跟蹤實體生成器生成數據合同,則該數據層中的類為。

在WCF服務中使用它的最佳方法是什么? 數據合同生成的ADO.net自跟蹤實體生成器將通過該服務被使用,還是WCF服務仍將使用默認的實體框架對象?

STE(自我跟蹤實體)的主要優勢是實施變更集。 這意味着您可以從Web服務的操作修改實體(或整個實體圖)返回STE,然后調用另一個操作將更新的STE發布回Web服務進行處理。 EF將自動檢測STE中的更改並進行處理。

對於Entity Framework實體,這是不可能的,因為只有當實體連接到ObjectContext它才能跟蹤更改,但是從Web服務操作返回時,該實體是分離的。

STE的缺點是您必須共享在服務和所有客戶端之間定義它們的程序集。 STE 不適用於可互操作的解決方案。

目前,大多數項目都是由第三類實體POCO開發的 ObjectContext分離時,POCO也無法跟蹤更改。 這是STE的功能。

這取決於您正在從事的工作類型。

使用構成您的數據合同並與EF模型分離的DTO(數據傳輸對象),您可以更好地控制序列化與否。 這對於與多個客戶端的兼容性和版本控制很重要。

http://martinfowler.com/eaaCatalog/dataTransferObject.html

在控制和分離方面,將PO與EF一起使用EF可能是下一個,最后一個生成的默認數據庫也是如此。 但是,當與Silverlight客戶端一起使用時,這兩種方法更易於使用並且更加靈活。

暫無
暫無

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

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