sql – 在DateTime LastUpdated列上使用Html.hidden进行版本跟踪时,MVC.NET毫秒丢失

问题简而言之:

如何在MVC.NET中做this

长版问题:

我试图在sql表中使用DateTime列进行版本跟踪(这本身就是一个解决方案,用于在通过表的editview传回后重新附加Linq2sql数据类)

但现在我得到“没有找到或改变行” – 异常.在ctx.submit上:

ctx.appointments.Attach(appointment,true);
 ctx.SubmitChanges();

其中ctx是我的Linq datacontext,约会我的表,并预约我试图附加的约会对象..我已将约会表设置为sugested here

建议的解决方案的读者也注意到了这个问题.他建议this作为解决方案.

这里的问题是我不使用webforms,我使用MVC.NET.所以我猜测正在使用

<%= Html.Hidden("LastUpdate",Model.LastUpdate) %>

使LastUpdate属性更改.
那么有什么方法可以确保在传回我的更新操作时获得相同(或至少相等)的DateTime对象?

我在更新约会表时使用建议的gettime()触发器.这显然存储了一个sql datetime对象.这可能不是由Linq2sql精确解析的.我想这也增加了问题.

我希望有一个解决方案.我知道只使用时间戳格式也可以解决它..但这超出了这个问题的范围

解决方法

我认为问题在于将最后一次更新时间写入隐藏字段,就像那​​样只会在日期执行ToString,认情况下不会渲染出毫秒数.您可以尝试将时间戳渲染为某些绝对值,例如ticks:
<%= Html.Hidden("LastUpdate",Model.LastUpdate.Ticks) %>

然后,您可以通过将值转换回长整数来重建另一侧的日期时间.重建DateTime:

var dt = new DateTime(Int64.Parse(ticks));

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 &#39;EastRiver&#39; 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...