2012-05-05 50 views
0

我一直在使用自跟蹤實體和我做了以下內容:自我跟蹤實體不會改變其狀態

1.-我創建一個新的實體

2:我修改它的屬性之一,例如entityName =「Dummy」

修改後,實體的狀態仍然沒有改變,所以當我執行applychanges時,它會執行任何操作。

我嘗試將其狀態設置爲已修改,然後將更改保存在數據庫中。但是用這種方法,我遇到了一個問題,因爲如果我沒有錯,STE會實現INotifyPropertyChanged接口,所以當我修改一個屬性時,會通知並且這是我想要的功能。

我錯了?也許當我改變一個屬性時,它不會改變它的狀態。

謝謝。 Daimroc。

編輯:當我使用一個WCF服務,並將查詢結果發送給使用EF 4.0的數據庫時,我得到實體時也會出現此問題。

EDIT2:我發現我的錯誤。

問題是,我有一個dll項目,其中我有tt文件和自我跟蹤實體。

我有一個WCF服務,有一個對這個項目的引用。此服務使用使用EF訪問數據庫的存儲庫。

我有一個自我託管的應用程序,我託管WCF服務。此應用程序沒有提及與STE的DLL。

我使用svcutil來創建service.cs。

我有客戶端,我在其中添加service.cs。 service.cs如何與我的dll項目的類。但有一個問題,這個類沒有所有這些類。我的意思是說,例如有ChangeTracker屬性,但他們沒有MarkAs方法和其他。

因此,如果我編輯service.cs來更改聲明我的類的名稱空間,並使用STE類添加對項目的引用,那麼我可以訪問所有方法,並且按我的預期工作。

所以問題出在我服務的「STE類」中,而不是在我的dll項目的STE類中。

爲什麼當我生成service.cs不生成「完整的類」?這使我添加了一個引用到我的dll項目與STE並編輯service.cs刪除代碼與它的STE類不工作,如我所料。有什麼辦法可以在service.cs文件中找到「好的STE類」嗎?

謝謝。 Daimroc。

問題是我有一個WCF服務,我主持在WPF應用程序。我運行自我宿主應用程序,並使用svcutil創建Service.cs。

我在客戶端應用程序中添加了這個Service.cs。在這項服務。cs存在我的

回答

2

您的描述太混亂。

STE使您的服務與客戶之間緊密結合。使用STE的唯一正確方法是將它們放置在獨立的程序集中,並在客戶機和服務之間共享此程序集。使用svcutil.exe爲客戶端應用程序創建服務引用時,可以使用reference參數來指定該程序集的類型解析,而不是創建新的非STE類型(用於添加服務引用的VS UI提供了類似的配置)。

+0

當我使用/引用與STE使用外部dll時,類不會添加到service.cs中,我必須在客戶端中使用對我的STE.dll庫的引用?或者svcutil會在生成非STE類型時將類的代碼添加到service.cs中? –

+0

客戶也必須參考STE組件。 –

+0

謝謝,這是我的想法,但我更願意確認。 –