Использование Linq To Sql Classes
не обновляет объект в контексте. Я использую контекст, чтобы получить некоторые записи и обновить их.Объект не изменяется в контексте
В моей БД у меня есть одна запись, которую я хочу обновить ...
я получаю его и я обновить поле, но объект в контексте не меняется. Как это возможно? Мой код выглядит следующим образом:
using(myPersonalModelContext ctx = new myContext())
{
List<LogIn> notProcessedLogins = ctx.LogIns.Where(login => login.processed == false).ToList(); //Returns 1 record. Ok.
foreach (LogIn notProcessedLogin in notProcessedLogins)
{
notProcessedLogin.processed = true;
}
int notProcessedLoginsCounter = ctx.LogIns.Where(login => login.processed == false).Count(); //Returns 1!!!
ctx.SubmitChanges(); //The object in the context has no change, so it doesn't update nothing.
int notProcessedLoginsCounter = ctx.LogIns.Where(login => login.processed == false).Count(); //Returns 1!!!
}
Я после documentation example и выглядит довольно тривиально, так что я не понимаю. Есть идеи?
В сгенерированном файле, я вижу, что обновление _processed
правильно:
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_processed", DbType="Bit")]
public System.Nullable<bool> processed
{
get
{
return this._processed;
}
set
{
if ((this._processed != value))
{
this._processed = value;
}
}
}
У меня создалось впечатление, что объект, который я обновление является, по какой-то причине, отделенной от контекста.
Вы не представили свои изменения в базу данных до второго запроса. – spender
@spender, но это не объясняет, почему его все еще не изменилось. –
@spender, счетчик просто должен показать, что контекст ничего не изменит. Все равно возвращает 1, если я снова сделаю запрос после подписок. Я обновил код. –