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

你可能是对的,做您有任何替代选项? –