2017-06-20 103 views
0

我有这样为什么这些Binary/RowVersion不匹配?

   Thingy 
======================================= 
| ... |  RowVersion  | ... | 
======================================= 

和另一个表像

   Result 
======================================= 
| ... |  ThingyRowVersion  | ... | 
======================================= 

在SQL Server中的列timestamp型和C#它们是Binary型。我所看到的是一个问题,当我尝试创建一个结果与同一行版本作为啄,像

Result r = new Result() 
{ 
    ThingyRowVersion = (from t in Context.Thingies where t.Id == id select t.RowVersion).Single() 
} 
Context.InsertOnSubmit(r); 
Context.SubmitChanges(); 

的变化被提交后,行版本将不会是平等的权利。

在他们看来是平等的权利我提交之前C#的土地,但是当我提出我看到像

0x0000000000002787/0x0000000000002782

任何想法不一致这是怎么回事呢?

回答

1

无论何时插入或更改行并且通常不由用户操作,时间戳都会自动更新。对他们来说最常见的操作是在使用乐观并发来查看自上次读取以来该行是否已更新时用作检查。你可能想用UniqueIdentifier之类的东西来做你想做的事。