2010-06-16 89 views
0

我有一個要求,只有保存在數據庫中的數據表中(我並不需要閱讀它)實體框架 - 避免再次查詢

如果記錄已經存在,我想更新它,否則我會添加它。 它通常存在。

我的實體上下文可能已經持有的對象..如果它確實我想找到它,並再次使用它,而不會導致它從數據庫中刷新的時候我「尋找」它

即上下文持有的集合實體(數據庫的行)我想在集合中找到一個實體,並且只希望上下文訪問數據庫(如果實體不在集合中)。我不關心實體的當前值。我只是想更新它們。

希望這是明確.....感謝

回答

3

我可能沒看到的問題,但我相信你在尋找某種緩存機制,我知道工作中,我們使用devForces IdeaBlade它執行技巧,但我相信你可以創建一個簡單的緩存機制自定義你的需要。

http://blogs.msdn.com/b/jkowalski/archive/2009/06/11/tracing-and-caching-in-entity-framework-available-on-msdn-code-gallery.aspx

在緩存中的位會有所幫助,如果這並不幫忙告訴我,我可以挖得更深一些。

+0

DevForce ..我目前在看.. ..偉大的產品。但這裏沒有答案。 我在說的是我只想在表格中更新/插入一行。我可以在不造成每次讀取的情況下執行此操作嗎? 其次..如果我已經有一個實體集合(表中的行),我怎麼從集合中獲取實體,而沒有entityContext從數據庫中刷新實體。我不需要去它已經在集合中的數據庫。所以我只想在一個集合中找到一個實體。 – Adam 2010-06-16 22:22:51

2

我相信你需要使用GetObjectByKey()而不是使用ObjectQuery我相信一個ObjectQuery總是會碰到後端數據存儲,無論它是什麼。

更多的信息在這裏http://msdn.microsoft.com/en-us/library/system.data.objects.objectcontext.getobjectbykey.aspx

+0

謝謝..必須有更好的方法..我認爲它與ObjectSet/ObjectQuery有關。 這是一個很好的網站 。 http://blogs.msdn.com/b/alexj/archive/2009/04/15/tip-13-how-to-attach-an-entity-the-easy-way.aspx http:// blogs.msdn.com/b/alexj/archive/2009/03/26/index-of-tips.aspx – Adam 2010-06-16 22:25:58