无法用新的日期时间值“代码优先”更新行
本文关键字:代码 代码优先 更新 时间 日期 | 更新日期: 2023-09-27 18:07:53
Edit
查询是正确的,我得到的错误是由于以下注销fx被调用两次,一次来自html href,另一次来自ajax。ajax调用具有UID,而Html具有null,因此抛出异常——稍后调用Html。谢谢你的建议。因为我是新的stackoverflow,我不确定如何对待答案/评论,因为他们都是正确的。
如何用新的datetime值更新行?
try
{
var last = (from l in db.loginActivity
where l.UID.Equals(_uid)
orderby l.LastLogin descending
select l).FirstOrDefault();
last.LastLogout = DateTime.Now;
db.Entry(last).State = EntityState.Modified;
db.SaveChanges();
}
当我使用FirstOrDefault() -> error: object ref not set to a instance of a object。当我使用First() ->错误:序列不包含任何元素。嗯,数据库中有几条记录。我在某个地方使用了这个片段,只有当更新的单元格不是datetime类型时,它才会像魅力一样工作。
任何建议吗?
错误告诉您没有找到与UID
匹配的记录,因此last
为空。您需要检查它是否为空:
var last = ...;
if (last != null) {
last.LastLogout = DateTime.Now;
db.Entry(last).State = EntityState.Modified;
db.SaveChanges();
}
或者,因为你在try/catch中这样做,你可以使用First
而不是FirstOrDefault
,并且只捕获First
在没有找到记录时抛出的异常。
至于为什么last
返回null,设置一个断点,并确保_uid
是你所期望的。
看起来没有项满足您的筛选条件:您是否尝试从查询中删除"where"?