聚合操作不支持“System.Data.Linq.Binary”类型

时间:2009-10-15 09:45:14

标签: linq-to-sql

var query2 = (from p in db.posts
                     where (p.date) == (from q in db.posts
                                        select q.date).Max()
                     select p.date).SingleOrDefault();

id = Convert.ToInt32(query2);

我在尝试从帖子表中获取最大日期时遇到此错误,是否有另一种方法?

1 个答案:

答案 0 :(得分:3)

TIMESTAMP是一个内部SQL Server datatype,存储为8字节blob。它与日期/时间无关 - 它只是一个内部计数器,真的。

它实际上已被弃用 - 改为使用rowversion数据类型(从SQL Server 2008及更高版本开始)。

从SQL Server联机丛书:

  

SQL Server时间戳数据类型具有   与时间或日期无关。 SQL   服务器时间戳是二进制数   表示相对序列   哪些数据修改发生在   一个数据库。时间戳数据类型   最初实施是为了支持   SQL Server恢复算法。

您不能在聚合中使用字节数组字节,因为错误消息清楚地说明了。

我会假设你的桌子中有另一个DATETIME列?

查看这篇优秀的Timestamps vs. Datetime data types文章,了解更多见解。

马克