[英]WCF and Entity Framework . How to Create a Service Layer for all entities - Generically
[英]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.