【发布时间】:2015-03-08 18:21:28
【问题描述】:
这是对这段代码的正确理解吗?它是更新具有url 的URLPath 的行以使IsInProcessing 列为true 的正确方法吗?
我还没有真正尝试过这段代码。在我这样做之前,我想尝试并理解它!它是从各种来源拼凑而成的。
代码:
using(var db = new DamoclesEntities())
{
var urls = db.URLS;
var result = urls.FirstOrDefault(u => u.URLPath == url);
result.IsInProcessingQueue = true;
db.SaveChanges();
}
- 我认为这里发生的事情是使用我将
DamoclesEntities()类实例化为var db。 - 然后我将
db.URLS(类/表)实例化为var urls。 - 然后我找到
URLPath(列)包含url的第一行,并将该行分配给result。 - 我将该行的
IsInProcessingQueue(列值)更改为true; - 最后,我将更改保存到数据库中。
【问题讨论】:
-
代码应该可以工作并且你理解正确,但是它可以做得更优雅并使用标准命名约定。
-
您的理解基本正确。
using确保数据库正确关闭,分配db.URLS到新变量不会实例化它。除此之外,你知道会发生什么。不过我还是会推荐你读一本书什么的。 -
如果找不到 URL,它也可能会失败:在这种情况下,您将得到 result = null 和空指针异常。这有可能发生吗?您可以将 FirstOrDefault 更改为 First 但如果它不存在则只会引发不同的异常。在这种情况下你想要什么行为?
标签: c# entity-framework-6 updatemodel