Entity Framework - 解释我的代码

Entity Framework - explain my code

这是对这段代码作用的正确理解吗?它是否是更新 URLPathurl 的行的正确方法,以便 IsInProcessing 列是true?

我还没有真正尝试过这段代码。在我这样做之前,我想尝试了解它!它是从各种来源拼凑而成的。

代码:

using(var db = new DamoclesEntities())
{
    var urls = db.URLS;
    var result = urls.FirstOrDefault(u => u.URLPath == url);
    result.IsInProcessingQueue = true;
    db.SaveChanges();
}
  1. 我认为这里发生的是在使用中我将 DamoclesEntities() class 实例化为 var db.
  2. 然后我将 db.URLS (class / table) 实例化为 var urls
  3. 然后我找到 URLPath(列)包含 url 的第一行,并将该行分配给 result
  4. 我将该行的 IsInProcessingQueue(列值)更改为 true
  5. 最后,我将更改保存到数据库。

这几乎是正确的,但请记住,如果没有按指定条件找到的行,FirstOrDefault 将 return 为空值 - URLPath == url.

所以在这种情况下,下一行将产生 NullReferenceException。

只需添加检查 result 是否为 null 并仅在 result != null

时执行 result.IsInProcessingQueue = true;db.SaveChanges();