2011-09-30 67 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

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