Select new records by timestamp column with Entity Framework(使用实体框架按时间戳列选择新记录)
问题描述
我的 SQL Server 数据库中有一个带有时间戳列 (RowId
) 的表.
I have a table with timestamp column (RowId
) in my SQL Server database.
我想根据这个时间戳查询新行.SQL 查询如下
I want to query new rows according to this timestamp. The SQL query is following
SELECT *
FROM [MyTable]
where RowId>=0x0000000000A99B06
0x0000000000A99B06
是上一个查询的最大时间戳值.
0x0000000000A99B06
is a max timestamp value from the previous query.
如何首先使用 Entity Framework 数据库进行这样的查询?RowId
映射到 byte[]
属性,我不知道如何在 LINQ 查询中比较字节数组.
How can I make such a query using Entity Framework database-first? RowId
maps to byte[]
property and I have no idea how to compare byte arrays in a LINQ query.
推荐答案
您不能使用 Entity Framework 执行此操作,因为它不允许在时间戳比较中使用 >=
运算符.它只允许 =
.你可以这样做,例如
You can't do this with Entity Framework because it does not allow the >=
operator in timestamp comparisons. It only allows =
. You can do e.g.
var b = BitConverter.GetBytes(1000000L);
var query = from x in MyTable
where x.RowId = b; // not >=
但这不会很有用.因此,您必须找到另一种获取新行的方法,例如标识列中的值,或添加真实"时间戳(日期时间)列.
But that would not be very useful. So you've got to find another way to get new rows, e.g. values in an identity column, or add a "real" time stamp (datetime) column.
这篇关于使用实体框架按时间戳列选择新记录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:使用实体框架按时间戳列选择新记录


基础教程推荐
- 全局 ASAX - 获取服务器名称 2022-01-01
- 如何动态获取文本框中datagridview列的总和 2022-01-01
- 错误“此流不支持搜索操作"在 C# 中 2022-01-01
- 经典 Asp 中的 ResolveUrl/Url.Content 等效项 2022-01-01
- 在 VS2010 中的 Post Build 事件中将 bin 文件复制到物 2022-01-01
- 从 VS 2017 .NET Core 项目的发布目录中排除文件 2022-01-01
- 首先创建代码,多对多,关联表中的附加字段 2022-01-01
- 将事件 TextChanged 分配给表单中的所有文本框 2022-01-01
- JSON.NET 中基于属性的类型解析 2022-01-01
- 是否可以在 asp classic 和 asp.net 之间共享会话状态 2022-01-01