加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

sql-server – 从LINQ to SQL查询时间戳列

发布时间:2021-03-15 02:45:05 所属栏目:编程 来源:网络整理
导读:我的表有一个名为“RowVer”的时间戳列,LINQ映射到System.Data.Linq.Binary类型.这种数据类型对我来说似乎没用,因为(除非我遗漏了什么)我不能做这样的事情: // Select all records that changed since the last time we inserted/updated.IEnumerableUserSes

我的表有一个名为“RowVer”的时间戳列,LINQ映射到System.Data.Linq.Binary类型.这种数据类型对我来说似乎没用,因为(除非我遗漏了什么)我不能做这样的事情:

// Select all records that changed since the last time we inserted/updated.
IEnumerable<UserSession> rows = db.UserSessions.Where
( usr => usr.RowVer > ???? );

因此,我正在寻找的解决方案之一是添加一个名为RowTrack的新“计算列”,它在SQL中定义如下:

CREATE TABLE UserSession
(
RowVer timestamp NOT NULL,RowTrack  AS (convert(bigint,[RowVer])),-- ... other columns ...
)

这允许我像我想要的那样查询数据库:

// Select all records that changed since the last time we inserted/updated.
IEnumerable<UserSession> rows = db.UserSessions.Where
( usr => usr.RowTrack > 123456 );

这是一个糟糕的做事方式吗?查询计算列的性能如何?有更好的解决方法吗?

此外,我正在开发针对Sql Server 2000的最终向后兼容性,但我可以与老板谈论使2005年成为最低的共同点.

解决方法

// Select all records that changed since the last time we inserted/updated.

Is there a better work-around?

为什么不有两列,一列用于lastdifieddate的createddate另一列.我想说这是处理这种情况的更传统方式.

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读