【发布时间】:2013-07-28 06:46:33
【问题描述】:
我有一个 DBML,其类包含 sql 中的时间戳列。
DBML 中的属性声明为:(此处仅指定相关字段)
自动生成值:true 名称:时间戳 可空:假 服务器数据类型:rowversion NOT NULL 来源:时间戳 时间戳:真 类型:二进制 更新检查:从不
在我的逻辑中,我插入到这个表中。但是,我很惊讶地看到生成的 sql 看起来像这样:
exec sp_executesql N'INSERT INTO [dbo].Foo( /* elided */)
VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10, @p11, @p12, @p13, @p14, @p15, @p16, @p17, @p18, @p19, @p20, @p21, @p22, @p23, @p24, @p25)
SELECT [t0].[Timestamp]
FROM [dbo].[Foo] AS [t0]
WHERE [t0].[Id] = @p26', /* elided */
我想摆脱那个 SELECT 语句 - 我不使用结果。
这是可能的,还是要求数据上下文必须知道新记录的时间戳是什么?
我知道我可以切换到使用 SP 作为插入方法,但更愿意避免这种情况。
【问题讨论】:
标签: linq-to-sql