Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法使用更新按条件分配值_C#_Linq_Entity Framework_Entity Framework 6_Entity Framework Extended - Fatal编程技术网

C# 无法使用更新按条件分配值

C# 无法使用更新按条件分配值,c#,linq,entity-framework,entity-framework-6,entity-framework-extended,C#,Linq,Entity Framework,Entity Framework 6,Entity Framework Extended,我正在尝试编写linq表达式,用于更新所有记录并根据id匹配条件设置其默认字段: m_context.Languages.Update(x => new Language {Default = x.LanguageId == _languageId ? true : false} ); context.Languages.Update(x => new Language {Default = !x.Default}); /

我正在尝试编写linq表达式,用于更新所有记录并根据id匹配条件设置其默认字段:

m_context.Languages.Update(x => 
                new Language {Default = x.LanguageId == _languageId ? true : false}
            );
 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
但在这种情况下,我得到了一个错误:

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)

您是否尝试用常量替换langId?@a.DIMO在此处使用常量没有任何意义,但我确实尝试过,并且得到了相同的错误,即列名称“LanguageId”不明确