EnterpriseLibrary.Data.NetCore-使用GenericDatabase的连接不支持参数发现 [英] EnterpriseLibrary.Data.NetCore - Parameter discovery is not supported for connections using GenericDatabase

查看:624
本文介绍了EnterpriseLibrary.Data.NetCore-使用GenericDatabase的连接不支持参数发现的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用用于.Net Core的企业库进行数据访问
EnterpriseLibrary.Data.NetCore 6.0.1313与ASP.NET MVC Core 2.2 Web应用程序配合SQL Server 2016使用,并调用ExecuteSprocAccessor不能使用参数值。

Using enterprise library for .Net Core for data access EnterpriseLibrary.Data.NetCore 6.0.1313 with ASP.NET MVC Core 2.2 web app with SQL Server 2016 and calling ExecuteSprocAccessor is not working with parameter values.

我正在创建带有企业库的ASP.NET MVC Core 2.2 Web应用程序,用于.Net Core进行数据访问。
EnterpriseLibrary.Data.NetCore 6.0.1313。我想在不定义参数映射而只传递一个值的情况下调用ExecuteSprocAccessor。我写了一个存储过程,用一个参数来调用,并且只在ExecuteSprocAccessor中传递一个参数值,就像这样

I am creating ASP.NET MVC Core 2.2 web app with enterprise library for .Net Core for data access. EnterpriseLibrary.Data.NetCore 6.0.1313. I want to call ExecuteSprocAccessor without defining paramter map and just passing a value. I have writtern one stored procedure to call with one parameter and passing only one paratmer value in ExecuteSprocAccessor like this

sqlDatabase.ExecuteSprocAccessor( [app]。[User_SelectByUserName], johnK)。FirstOrDefault();

sqlDatabase.ExecuteSprocAccessor("[app].[User_SelectByUserName]", "johnK").FirstOrDefault();

,存储的程序为

ALTER PROC [app]。[ User_SelectByUserName]
@UserName NVARCHAR(100)

ALTER PROC [app].[User_SelectByUserName] @UserName NVARCHAR(100)

AS

BEGIN

从[app]中选择。[用户]

SELECT FROM [app].[User]

END

但是我收到以下错误。

But I am getting following error.

{System.NotSupportedException:使用GenericDatabase的连接不支持参数发现。您必须明确指定参数,或将连接配置为使用从支持参数发现的数据库派生的类型。 Microsoft.Practices.EnterpriseLibrary.Data.Sql.SqlDatabase.DeriveParameters(DbCommand DiscoveryCommand)的
Microsoft.Practices.EnterpriseLibrary.Data.Database.DiscoverParameters(DbCommand命令)Microsoft.Practices的
.EnterpriseLibrary.Data.ParameterCache.SetParameters(DbCommand命令,数据库数据库)Microsoft.Practices.EnterpriseLibrary.Data.Database.AssignParameters(DbCommand命令,Object [] parameterValues)
在Microsoft.Practices.EnterpriseLibrary .Data.SprocAccessor`1.Execute(Object [] parameterValues)

{System.NotSupportedException: Parameter discovery is not supported for connections using GenericDatabase. You must specify the parameters explicitly, or configure the connection to use a type deriving from Database that supports parameter discovery. at Microsoft.Practices.EnterpriseLibrary.Data.Sql.SqlDatabase.DeriveParameters(DbCommand discoveryCommand) at Microsoft.Practices.EnterpriseLibrary.Data.Database.DiscoverParameters(DbCommand command) at Microsoft.Practices.EnterpriseLibrary.Data.ParameterCache.SetParameters(DbCommand command, Database database) at Microsoft.Practices.EnterpriseLibrary.Data.Database.AssignParameters(DbCommand command, Object[] parameterValues) at Microsoft.Practices.EnterpriseLibrary.Data.SprocAccessor`1.Execute(Object[] parameterValues)

推荐答案

此问题已在新版本(6.1.10)中修复。 -rc)。我知道这是一个预发行版本,但看起来该软件包已不再维护

This was fixed in a new version (6.1.10-rc). I know it's a pre-release version but looks like the package is no longer maintained

这篇关于EnterpriseLibrary.Data.NetCore-使用GenericDatabase的连接不支持参数发现的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆