使用LINQ更新表

时间:2011-09-30 22:01:07

标签: asp.net linq

求助看下面的代码片段。

我在更新表时遇到问题,代码没有显示错误但是没有按预期运行,它没有在日志表中放置任何信息。

一些explenation,我在LogID上有一个名为User with a FK的表,在LogID上有一个名为Log with PK的表,所以它应该是正确的,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之前放置。

1 个答案:

答案 0 :(得分:1)

我正在使用实体框架,所以我可能错了。但也许根本没有加载日志。

试试这个:

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;

....