2013-06-19 46 views
0

我有一個包含實體框架項目的WCF服務。如何停止wcf服務生成實體框架引用

我也有用於公開數據的DTO類。實體對象被映射到DTO對象。

當我生成服務代理時,我看到實體對象和DTO對象。

如果我有一張名爲Product的表,我可以獲取Product和Product1參考。

這並沒有用來發生。

我做了什麼導致這種情況,我該如何阻止我的實體對象被暴露?

更多信息:

當EF從數據庫生成模型對象,它增加了這樣的數據契約屬性:

[EdmEntityTypeAttribute(NamespaceName="KernMobile_V5Model", Name="JobMaster")] 
[Serializable()] 
[DataContractAttribute(IsReference=true)] 
public partial class JobMaster : EntityObject 

我假定這意味着它將由服務被暴露?

+0

產品DTO的外觀如何?是否有可能使用在EF類中聲明的EF枚舉?任何聲明爲EF類型的DTO屬性? – AaronLS

+0

似乎是導致它的代理的一代。我有我的客戶的舊版本。當我從這個代理生成代理時 - 沒有重複。當我從最新的客戶端生成代理時,我得到重複。什麼會造成這種情況? –

回答

2

該服務僅公開服務操作中使用的對象,或者指定爲公開的已知類型。

如果您的客戶端代理正在爲這些實體框架對象生成對象,則必須以某種方式通過您的服務公開它們。這可以作爲請求或響應對象,或作爲這些對象的屬性。

+0

這完全是正確的答案。我不小心引用了一個實體對象,它使用它幾乎拉動了整個實體對象圖。 –

+0

這就是我懷疑的。 – AaronLS