#asp.net #linq
#asp.net #linq
Вопрос:
РЕШАЕМАЯ посмотрите ниже фрагмент кода.
У меня проблема с обновлением таблиц, код не показывает ошибок, но он действует не так, как ожидалось, он не помещает никакой информации в таблицу журнала.
некоторое объяснение, у меня есть таблица с именем User с FK в LogID и таблица с именем Log с PK в LogID, так что это должно быть правильно, в журнале есть столбец с именем 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. существует ли соответствующая строка в журнале таблиц? какой ORM вы используете?
2. в столбцах (LastLogedin и TimesLoggedIn ) нет информации, но строка существует, она содержит registeredTime и LogID с данными в них
3. Почему вы создаете нового пользователя в середине этого кода? Похоже, вы ничего с этим не делаете.
4. удалил его, это был мусор от попытки исправить. не имеет значения.
Ответ №1:
Я использую Entity Framework, поэтому я могу ошибаться. Но, возможно, журнал вообще не загружен.
Попробуйте это:
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;
....
Комментарии:
1. Хорошо, я опубликовал другую идею.