2010-11-11 107 views
1

我需要一些幫助。實體框架和Web服務

我有2個項目中的溶液。 第一個項目包括Web服務,它提供像GetAllCustomers一些方法,GetCustomerByGUID等.. 它還包括EDMX文件,所以這些「get」方法放棄實體對象。

第二個項目 - 在這個時刻 - 一個控制檯應用程序測試所有這些方法。 我通過Web服務,萬物細收到我的對象,但..

這裏是我的問題:

這些對象放過每一個導航屬性。我的客戶實體對象有一些。 在Web服務項目中,導航屬性在那裏。

另一個奇怪的事情: 如果我instanciate在控制檯中的EF DataContext,我不能調用SaveChanges方法。這只是不存在。我知道我不應該在這一層有datacontext的對象,但爲了測試我偶然發現了這一點。

任何人都知道這件事嗎?

回答

2

你將有困難的時候得到這個工作,你把它設計的方式。請記住,一旦實體被序列化並通過網絡發送,您將丟失與DataContext相關聯的所有信息。此外,除非您明確包含對實體框架模型的程序集引用並選擇重用這些類型,否則您所處理的類型只是.edmx中實際模型的代表性克隆。

導航屬性只有在實體連接到DataContext時纔有意義,因爲這是處理調用數據庫和爲要求的實體提供水合的所有魔法的。你實際上從你的web服務中獲得了一個POCO,但是你試圖使用它,就好像它仍然附着在它的上下文中一樣。

你正在嘗試建立是一個N層應用程序,所以我建議在how to do this with Entity Framework讀了。