大概聽起來像一個愚蠢的問題,但有一個方面關於它我想知道:使用實體框架保存對象時會發生什麼?
我正在處理具有Guid屬性的PrimaryKeys,它會在數據庫中自動生成。我使用的是實體框架,Code First。如果我在保存之前使用此屬性執行Console.WriteLine,則值爲
00000000-0000-0000-0000-000000000000
。
使用添加和調用SaveChanges的背景下,如果我有相同的屬性再做一個Console.WriteLine
之後,我有一個值:
615f98eb-4ced-422A-877F-b9caa6f2b91f
顯然,在內存中的對象已經更新。但我想知道如何。 Guid在數據庫中生成,所以會發生什麼?
對象的Guid屬性是否簡單地通過EF從數據庫更新,還是將EF保存到數據庫後將整個對象重新加載到內存中?
我想知道,因爲這將決定我如何在同一個項目中設計NUnit-tests
。
您可以使用[MiniProfiler](http://miniprofiler.com/)這樣的工具來查看生成併發送到數據庫的sql。 – SWeko 2013-03-07 08:21:52
對於我來說,使用SQL Server生成的GUID似乎有點奇怪。通常,GUID的優點在於它們可以由客戶端生成。 – Aron 2013-03-07 08:29:48
Genereally,但不總是。 ;-)它有它的用途。 – JustAnotherUserYouMayKnow 2013-03-07 08:32:57