這是否正確理解此代碼的作用 - 是否更新具有URLPath
的url
的行的正確方法,以便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
; - 最後,我保存對數據庫的更改。
代碼應工作,你的理解是正確,但是它可以做更多的優雅和使用std命名約定。 – sed 2015-03-08 18:25:18
你的理解大多是正確的。 'using'確保數據庫正確關閉,並且將*'db.URLS'賦給新變量不會實例化它。除此之外,你會發生什麼。我仍然會建議你閱讀一本書或其他東西。 – poke 2015-03-08 18:25:18
如果找不到URL,它也可能會崩潰:在這種情況下,您會得到result = null和空指針異常。這有可能發生嗎?您可以將FirstOrDefault更改爲First,但如果它不存在,則會引發不同的異常。在這種情況下你想要什麼樣的行爲? – Rup 2015-03-08 18:29:10