Невозможно присвоить значение по условию с помощью обновления
Я пытаюсь написать выражение linq, которое обновляет все мои записи и устанавливает их поле по умолчанию на основе условия совпадения идентификатора:
m_context.Languages.Update(x =>
new Language {Default = x.LanguageId == _languageId ? true : false}
);
Но в этом случае я получаю ошибку:
System.Data.SqlClient.SqlException: Ambiguous column name 'LanguageId'.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite)
at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at EntityFramework.Batch.SqlServerBatchRunner.<InternalUpdate>d__15`1.MoveNext()
--- End of inner exception stack trace ---
at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
at EntityFramework.Extensions.BatchExtensions.Update[TEntity](IQueryable`1 source, Expression`1 updateExpression)
Что я иду не так? Я пробовал другие условия, и, кажется, работает нормально, пока в поле не участвует другое поле:
context.Languages.Update(x => new Language {Default = !x.Default}); //fine
context.Languages.Update(x => new Language {Default = true == true}); //fine
context.Languages.Update(x => new Language {Version = x.Version + 1}); //fine
context.Languages.Update(x => new Language {Default = x.LanguageId == langId}); //error