2011-09-30 47 views
0

解決下面的代碼片段。LINQ更新表

我有一個更新表的問題,代碼顯示沒有錯誤,但它沒有按預期行事,它沒有在日誌表中放置任何信息。

一些explenation,我有一個名爲LogID的用戶名爲FK的表和一個LogID爲Log的表,所以應該是正確的,Log有一個名爲TimesLoggedIn的列和一個名爲LastLogedin的表。我想相應地更新它們。

 User logid = db.Users.Single(p => p.UserID == loginID); 
     logid.Log.LastLogedin= DateTime.UtcNow; 

     if (logid.Log.TimesLoggedIn == null) 
     { 
      logid.Log.TimesLoggedIn = 1; 
     } 
     else 
     { 
      logid.Log.TimesLoggedIn = logid.Log.TimesLoggedIn + 1; 
     } 
    db.SubmitChanges(); 

在我的代碼有一個令人尷尬的錯誤,我有

Response.Redirect("ControlPanel"); 

放在之前,我不跑後的LINQ。

+0

並在表中記錄的相應行存在嗎?你使用的是什麼ORM? – DarkSquirrel42

+0

coloumns中沒有信息(LastLogedin和TimesLoggedIn),但該行存在,它包含registeredTime和LogID及其中的數據 –

+0

爲什麼在此代碼中創建新用戶?你似乎沒有做任何事情。 – nycdan

回答

1

我正在使用實體框架,所以我可能是錯的。但是,Log可能根本沒有加載。

試試這個:

var options = New DataLoadOptions(); 
options.LoadWith<Users>(x => x.Log); 
db.LoadOptions = options; 

// then your code: 
User logid = db.Users.Single(p => p.UserID == loginID); 
logid.Log.LastLogedin= DateTime.UtcNow; 

.... 
+0

嘮叨複製代碼有點太早 –

+0

好的,我發佈了一個不同的想法。 –

+0

可悲的是你的代碼段不起作用 –