代码之家  ›  专栏  ›  技术社区  ›  Monkey Man

Sybase ASE 16x和.NET Core 1.1进行SP调用

  •  1
  • Monkey Man  · 技术社区  · 7 年前

    Sybase.AdoNet4.AseClient Sybase SDK 16.0中的.dll。

    public IEnumerable<Countries> GetCountry()
        {
    
            var con = new AseConnection(ConnectionString); // No Errors
            var cmd = con.CreateCommand(); // Error described below
    
            return null;
        }
    

    这个 CreateCommand() The type 'Db Connection is defined in an assembly that is not referenced. You must add a reference to assembly 'system.Data, Version=4.0.0.0, Culture=neutral, PublicKey=b77a5c561934e089'

    我按包装装载

    • 安装软件包System.Data。通用-版本4.1.0 ,但错误仍然存在。
    • 安装软件包System.Data。通用-版本4.3.0 ,但错误仍然存在。
    • 安装软件包System.Data。通用-版本4.0.0 ,
    • 试图安装 安装软件包System.Data。通用-版本

    安装包:包还原失败。正在回滚“iKYC.API”的包更改。 第1行字符:16 +FullyQualifiedErrorId:NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlet.InstallPackage geCommand命令

    1 回复  |  直到 7 年前
        1
  •  2
  •   Nicholas Sizer    7 年前

    我建立了一个项目来测试这一点,有趣的是,如果你的目标是 .net core 2.0 1.1 它将建立。

    System.MissingMethodException

    Sybase.AdoNet4.AseClient.dll 目标是.NETFramework 4,而不是.NETCore。它甚至在文件名中暗示了这一点( AdoNet4

    目前,这个驱动程序似乎与.NETCore不兼容。也许有一天,当缺失的方法被移植到.NETCore时……它可能会工作吗?

    1. 使用 System.Data.Odbc 命名空间/包。 System.Data.Odbc 目前处于预发布阶段,并有望成为目标 .net core 2.0+ .如果你被束缚在 .net core 1.1 .
      • 虽然它可以处理简单的东西,但我有一些问题。特别是,似乎没有任何方法可以从运行的存储过程中获取返回值,并且缺少对命名参数的支持(一个 ODBC 我认为),使工作变得困难。
    2. 使用 AdoNetCore.AseClient 命名空间/包。在经历了很多挫折之后,我忍无可忍,继续努力 ADO.NET .net core 1.0 , 1.1 , 2.0 .net framework 4.6 。如果您想查看来源/文档并确定它是否适合您,请点击 available on github .
      • using Sybase.Data.AseClient; 具有 using AdoNetCore.AseClient; .