如何从.net core连接到Sybase数据库

How to connect to Sybase database from .net core

我正在尝试从 .net 核心连接到 Sybase 数据库,但我没有找到任何好的库。有人可以建议库连接到 Sybase 吗?

能否使用 Sybase 客户端或 Sybase SDK for Developers 附带的 ODBC 驱动程序?

我已经将 MSA.NetCore.ODBC 与 Dapper 一起用于我的测试 .Net Core 2.0 项目。

using System.Collections.Generic;
using System.Data;
using System.Data.Odbc;
using Dapper;

...
public IEnumerable<Book> GetBooks()
{
    using (IDbConnection dbConnection = new OdbcConnection("{your_db_connection}"))
    {
        IEnumerable<Book> books = dbConnection.Query<Book>("select * from books");

        return books;
    }
}

您有几个连接到 .net core 中的 ASE 数据库的选项:

  1. 为您的 Sybase 数据库设置一个 ODBC 数据源并在 nuget 上使用 System.Data.Odbc namespace/package。此软件包目前处于预发布阶段,面向 .net core 2.0+
    • 如果您无法升级到 2.02.1,则此选项不可行。
    • 有一段时间我尝试使用这个包,但是在从过程调用中检索 return 值时遇到了问题。另外,不支持命名参数也很烦人。
  2. 在 nuget 上使用 AdoNetCore.AseClient namespace/package。
    • 我开始写这篇文章是因为我对使用 ODBC 感到沮丧,并且看不到其他选择
    • 这是为了支持.net core 1.01.12.0(以及发布时的2.1)和framework 4.64.6 支持的原因是它可以作为替代品。
    • 如果您想阅读 sources/documentation 并确定它是否适合您,那就是 available on github

归根结底,这两个包都实现了它们的 ADO.NET 接口风格(IDbConnectionIDbCommand 等),因此设置它们的 C# 代码将非常相似:

//System.Data.Odbc style
using(var connection = new OdbcConnection(...))
using(var commmand = connection.CreateCommand())
{
    connection.Open();
    //command stuff, note: named parameters unsupported
}

//AdoNetCore.AseClient style
using(var connection = new AseConnection(...))
using(var commmand = connection.CreateCommand())
{
    connection.Open();
    //command stuff
}

.NET Core 有一个新的 SQL Anywhere 驱动程序。不幸的是,仍然缺少对 EF Core 的支持。

以下是来自 SAP 的条目:

SQL Anywhere .NET Core 数据提供程序 SQL Anywhere Provider for .NET Core 是一个 ADO.NET 驱动程序,它提供从 .NET Core 应用程序到 SAP SQL Anywhere 数据库的数据访问。

该驱动程序是 Sap.Data.SQLAnywhere.Core.v2.1.dll,可在 Microsoft Windows 上获得。它包含在 SAP SAP IQ 数据库客户端中。

ADO.NET 支持 提供商支持大多数 ADO.NET 功能。以下 ADO.NET 功能不适用于 .NET Core:

  • 使用事务协调器进行分布式事务登记
  • SACredential class
  • SAConnection( string connectionString,SACredential credential) 方法
  • SAP权限class
  • SAFactory.CreatePermission方法
  • Entity Framework

https://help.sap.com/viewer/a894a54d84f21015b142ffe773888f8c/16.1.5.0/en-US/81e7c7253f0b42a0b8fb0f6f8a30de2d.html