2012-11-20 33 views
1

我有一個由.tt文件生成的EF CF模型,因此每個實體都可以獲得一個接口,如IEntity如何讓WCF數據服務的實體實現一個接口?

然後我有一個WCF數據服務暴露模型。

但是,當我添加一個服務引用到這個服務,結果實體沒有這樣的接口,所以我不能使用泛型對他們。

我該如何解決這個問題?

+0

爲什麼不在客戶端重複使用相同的模型? –

+1

@WiktorZychla:那麼使用WCF DS將毫無意義。但我仍然想使用它(或者我不明白你的問題,對不起)。不要公開模型,但提供REST訪問權限。 – abatishchev

+0

我認爲Wiktor要求分享客戶端和服務器類型。您可以將它們放在單獨的程序集中,並在客戶機和服務器中使用它們。您仍然可以使用WCF DS,因爲您想通過網絡在odata中序列化/反序列化這些類型。換句話說,不是添加服務引用,而是使用共享程序集中的相同類型,並使用來自客戶端和服務器的類型。 – Pratik

回答

1

Here是爲什麼你沒有在客戶端上獲得IEntity的詳細解釋。如果共享程序集不適合您,您仍可以執行以下操作。而不是IEntity創建EntityBase。比添加到像[KnownType(typeof(MyEntity1))], [KnownType(typeof(MyEntity2))]等這樣的屬性。你正在使用一個tt,所以你可以用它來自動生成EntityBase和知道所有模型類型的屬性。在客戶端上,您將獲得所有實體的基類。