C# 比较C中的时间戳值

C# 比较C中的时间戳值,c#,sql-server-2008,linq-to-sql,concurrency,C#,Sql Server 2008,Linq To Sql,Concurrency,我在现有数据库中创建了一个新列,以便为并发操作提供行版本: alter table MyTable add ColumnName rowversion 在我的类中,我添加了以下属性 public byte[] ColumnName { get; set; } 在使用该类的一个方法中,我在使用该属性时出错 无法将类型“System.Data.Linq.Binary”隐式转换为“byte[]” 我通过向属性中添加ToArray myObj.ColumnName.ToArray克服了这一问题 在我

我在现有数据库中创建了一个新列,以便为并发操作提供行版本:

alter table MyTable add ColumnName rowversion
在我的类中,我添加了以下属性

public byte[] ColumnName { get; set; }
在使用该类的一个方法中,我在使用该属性时出错

无法将类型“System.Data.Linq.Binary”隐式转换为“byte[]”

我通过向属性中添加ToArray myObj.ColumnName.ToArray克服了这一问题

在我的ASP.Net页面中,我向中继器添加了一个隐藏控件,并将该值指定为

RowHiddenField.Value = Convert.ToBase64String(myObj.ColumnName);
现在我尝试将此列与传入的对象进行比较

public bool RowModified(MyObject myObj)

objFound = GetAllObjects.First(o=> o.ID = myObj.ID);

If (objFound.ColumnName == myObj.ColumnName)
但价值观却不一样

在阅读了转换时间戳中的一些链接后,我尝试了它们,但它们要么不起作用,要么是我感到困惑并做错了什么,要么它不适用于我的场景


感谢您在这方面的帮助。

我对SQL版本格式一无所知。似乎mss在评论中提供的链接将帮助你,如果你关心这一点

但是如果您关心的只是相等,那么只比较两个字节[]对象就足够了。代码的问题是数组不重写Equals或提供==重载。因此,使用==只是比较两个始终相同的对象引用

有关如何正确、轻松地比较两个阵列的详细信息,请参见前面的问题:

您似乎有很多问题。你的实际问题是什么?我正在尝试将从隐藏字段传递的值与当前行版本值进行比较,以查看自页面加载以来数据是否已更改@mss我确实读过那个链接,但为了达到同样的目的,我的目的似乎需要做出重大的改变。我不确定是否有更简单的方法,因为我不确定当我将字节值转换为字符串时,如何获得它们?