我目前有一个项目,我们正在尝试将一些数据从客户端数据库迁移到我们的中央数据库存储中。然后,我们将通过 Web 服务方法将数据公开回客户端。
我们想做的一件事是在数据上使用 T-SQL 时间戳(或行版本)列,以便客户端可以对照我们的数据检查他们的本地版本,例如调用一个方法说“给我所有版本大于 10 的数据"
这对我们来说有点问题,因为 Entity Framework 会将时间戳列解释为 Byte 数组,所以我们无法找出在 LINQ 中编写代码以获取所有数据行的最佳方法,其中 version > X where type版本是字节[]。
在伪代码中
getdata(int checkVersion)
{
return Shoppers.Where(s=>s.Version > checkVersion).ToList();
}
//==> need to convert the Version column from Byte[] to int somehow in Linq-Entities
一个建议是在 bigint 类型的表中创建一个新的计算列,用于转换版本(时间戳)列。
我想知道是否实际上有一种方法可以在 LINQ 中执行此操作,而无需在表中引入另一列?