大概听起来像一个愚蠢的问题,但有一个方面关于它我想知道:使用实体框架保存对象时会发生什么?
我正在处理具有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