C# 4.0 更新一个变量,则更新另一个变量
当我用相同的数据加载到变量并更新其中一个,然后另一个被更新到,只是好奇为什么会发生这种情况,我对此完全陌生,我只是开始学习:)C# 4.0 更新一个变量,则更新另一个变量,c#-4.0,ravendb,C# 4.0,Ravendb,当我用相同的数据加载到变量并更新其中一个,然后另一个被更新到,只是好奇为什么会发生这种情况,我对此完全陌生,我只是开始学习:) 使用(var session=Store.OpenSession()) { var Example1=session.Load(string.Format(“EX1/{0}”,11)); var Example2=session.Load(string.Format(“EX1/{0}”,11)); 示例1.DateCreated=DateTime.Now; 示例1.Cr
使用(var session=Store.OpenSession())
{
var Example1=session.Load(string.Format(“EX1/{0}”,11));
var Example2=session.Load(string.Format(“EX1/{0}”,11));
示例1.DateCreated=DateTime.Now;
示例1.CreatedBy=“Anand”;
session.SaveChanges();
}
当我检查Example2的值时,它已被更新为Example1的相同值。当您加载
Example2
时,RavenDB足够聪明,可以看到您已经在此会话中加载了相同的文档。因此,它返回了相同的实例。当您加载示例2
时,RavenDB非常聪明,可以看到您已经在此会话中加载了相同的文档。因此它返回了相同的实例。asp.net中的会话是通过引用传递的,所以我猜ravenDb也会这样做。在这种情况下,example1
&example2
将指向相同的对象谢谢Thomas Freudenberg和asp.net中的@ServSessions是通过引用传递的,所以我猜ravenDb也会这样做。在这种情况下,example1
和example2
将指向相同的对象谢谢托马斯·弗洛登伯格和@Serv
using (var session = Store.OpenSession())
{
var Example1 = session.Load<EX1>(string.Format("EX1/{0}", 11));
var Example2 =session.Load<EX1>(string.Format("EX1/{0}", 11));
Example1.DateCreated = DateTime.Now;
Example1.CreatedBy = "Anand";
session.SaveChanges();
}