0
  • 我有我的EDMX很少表(不超過20)
  • 我在存儲過程的大名單(可能超過1K)在我的EDMX 。
  • EF版本5.0

每當我試着從DB添加/更新模型,它總是拋出這個錯誤,任何一個可以幫助我嗎?發生錯誤而實體框架生成模型

無法生成因爲以下異常的模型: 「System.Data.Entity.Core.EntityCommandExecutionException:執行命令定義錯誤 發生。有關詳細信息,請參閱內部 例外。 ---> System.Data.SqlClient.SqlException: 傳入請求具有太多參數。服務器最多支持210035個參數。減少參數數量並重新發送請求。在在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning System.Data.SqlClient.SqlConnection.OnError(SqlException異常, 布爾breakConnection,動作1 wrapCloseInAction) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action 1 wrapCloseInAction)(TdsParserStateObject stateObj,布爾callerHasConnectionLock,布爾asyncClose)在 系統。 Data.SqlClient.TdsParser.TryRun(runBehavior runBehavior, 的SqlCommand cmdHandler,SqlDataReader的數據流, BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj,布爾& dataReady)在 System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()在 System.Data.SqlClient的.SqlDataReader.get_MetaData()在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader的DS, RunBehavior runBehavior,字符串resetOptionsString)在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(的CommandBehavior cmdBehavior,RunBehavior runBehavior,布爾returnStream,布爾 異步,的Int32超時,任務&任務,布爾asyncWrite,SqlDataReader的 DS)在 System.Data.SqlClient.SqlCommand.RunExecuteReader(的CommandBehavior cmdBehavior,runBehavior runBehavior,布爾returnStream,字符串 方法,TaskCompletionSource 1 completion, Int32 timeout, Task& task, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) at System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior)
at System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.<Reader>b__c(DbCommand t, DbCommandInterceptionContext
1 c)中在 System.Data.Entity的。 Infrastructure.Interception.InternalDispatcher 1.Dispatch[TTarget,TInterceptionContext,TResult](TTarget target, Func 3操作,TInterceptionContext inter ceptionContext, 行動3 executing, Action 3在執行)在 System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.Reader(的DbCommand 命令,DbCommandInterceptionContext interceptionContext)在 System.Data.Entity.Internal.InterceptableDbCommand.ExecuteDbDataReader(的CommandBehavior 行爲) System.Data.Common.DbCommand.ExecuteReader(的CommandBehavior行爲)
在 System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(entityCommand entityCommand,的CommandBehavior行爲)---內部異常

回答

0

這種錯誤通常是由模型中的許多對象引起的(看起來就像您的所有過程都是這種情況),並且實體框架不夠聰明,無法實現多個數據庫往返。

您可以找到有關此問題的詳細信息:https://social.msdn.microsoft.com/Forums/en-US/aafb63c4-61df-4d8d-9373-df78d6f7d686/entity-framework-vs-2012-designer-fails-calling-spexecutesql-with-too-many-parameters-when-updating?forum=adodotnetentityframework

+0

你可能是對的,做您有任何替代選項? –