Asp.net core Sybase ASE 16x和.NET Core 1.1进行SP调用
我正在使用Visual Studio 2017(第15.2版)。核心1.1和使用Sybase ASE 16.0 sp2。我还在Sybase SDK 16.0中使用Sybase.AdoNet4.AseClient.dllAsp.net core Sybase ASE 16x和.NET Core 1.1进行SP调用,asp.net-core,sybase,sap-ase,Asp.net Core,Sybase,Sap Ase,我正在使用Visual Studio 2017(第15.2版)。核心1.1和使用Sybase ASE 16.0 sp2。我还在Sybase SDK 16.0中使用Sybase.AdoNet4.AseClient.dll public IEnumerable<Countries> GetCountry() { var con = new AseConnection(ConnectionString); // No Errors var cmd
public IEnumerable<Countries> GetCountry()
{
var con = new AseConnection(ConnectionString); // No Errors
var cmd = con.CreateCommand(); // Error described below
return null;
}
public IEnumerable GetCountry()
{
var con=new-AseConnection(ConnectionString);//无错误
var cmd=con.CreateCommand();//下面描述的错误
返回null;
}
CreateCommand()
在IDE(弯曲的红线)中生成以下内容:
类型“Db连接”是在未引用的程序集中定义的。您必须添加对程序集'system.Data,Version=4.0.0.0,Culture=neutral,PublicKey=b77a5c561934e089'的引用。
我装的是每包的
- 安装软件包System.Data.Common-版本4.1.0,该软件包已加载,但错误仍然存在
- 安装软件包System.Data.Common-版本4.3.0,该软件包已加载,但错误仍然存在
- 已尝试安装软件包System.Data.Common-版本4.0.0, 但得到一个错误(如下所示):
- 已尝试安装包System.Data.Common-版本 4.0.0.0,但得到相同的错误(如下所示):
+安装包我设置了一个项目来测试这个,有趣的是,如果你的目标是 它将构建
.netcore2.0
而不是1.1
但是,这会导致运行时错误System.MissingMethodException,因为驱动程序正在查找.net core中尚不存在的方法(和名称空间?)
原因是Sybase.AdoNet4.AseClient.dll
的目标是.net framework 4,而不是.net core。它甚至在文件名(AdoNet4
)中提示它
目前看来,这个驱动程序与.net内核不兼容。也许有一天,当丢失的方法被移植到.net内核时。。。可能有用吗
幸运的是,有两种选择:
System.Data.Odbc
目前处于预发布状态,并将目光投向目标.net core 2.0+
。如果您被链接到.net core 1.1
,则可能不适合您。
- 就我个人而言,我把
包弄乱了,虽然它可以处理简单的东西,但我遇到了一些问题。特别是,似乎没有任何方法可以从正在工作的存储过程中获取返回值,并且缺少对命名参数的支持(我认为这是一种System.Data.Odbc
的东西),使得使用它变得困难ODBC
ADO.NET
驱动程序,它的目标是.netcore1.0
,1.1
,2.0
,以及.netframework4.6
。如果您想查看源代码/文档,并确定它是否适合您,那么它非常有用。
- 要使用此驱动程序,只需引用包并使用Sybase.Data.AseClient替换
使用AdoNetCore.AseClient进行
编码代码>
有人成功使用Sybase with CORE吗?我们一直在努力。要阅读一些文档并查看其当前支持的内容的更详细说明,。感谢您让我知道,我已经开始使用[Link][ODBC Preview Package][1],但尚未测试性能。我会看看你的链接![1]: