2017-07-21 4 views
1

私はVisual Studio 2017(v 15.2)を使用しています。コア1.1を使用し、Sybase ASE 16.0 sp2を使用します。また、Sybase.AdoNet4.AseClient .dllをSybase SDK 16.0内で使用しています。SPコールを発信するSybase ASE 16xおよび.NET Core 1.1

public IEnumerable<Countries> GetCountry() 
    { 

     var con = new AseConnection(ConnectionString); // No Errors 
     var cmd = con.CreateCommand(); // Error described below 

     return null; 
    } 

CreateCommand()はIDE(波線赤い線)以下に、生成します。 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'

私はPackageManger

  • インストール・パッケージをSystem.Data.Common -version 4.1あたりのロード.がロードされますが、エラーはまだ残ります。
  • install-package System.Data.Common -version 4.3.0、ロードされてもエラーはまだ残ります。 インストールパッケージをSystem.Data.Common -version 4.0.0、 をインストールするが、エラー(以下に示す)取得しよう
  • インストールパッケージをSystem.Data.Common -version をインストールしようとしました4.0.0.0が、上記と同様のエラー(下記参照)を取得:

インストール・パッケージ:パッケージは、復元に失敗しましたが。 'iKYC.API'のパッケージのロールバックが変更されました。ラインで :1つの文字:16 +インストールパッケージ< < < < System.Data.Common -version 4.0.0 + CategoryInfo:NotSpecified:(:) [インストール・パッケージ]、例外 + FullyQualifiedErrorId:NuGetCmdletUnhandledException、NuGet .PackageManagement.PowerShellCmdlets.InstallPacka geCommand

これはSybaseのため、EntityFrameの作業をロードしていません。 Sybaseは私が使うことができる唯一のDBです。

+0

SybaseはCOREで正常に使用されましたか? –

+0

私たちは[このドライバ](https://www.nuget.org/packages/AdoNetCore.AseClient)に取り組んでいます。 いくつかのドキュメントを読んで、現在サポートされているものの詳細な説明を参照するには、[githubでチェックアウトする](https://github.com/DataAction/AdoNetCore.AseClient)を参照してください。 –

答えて

2

これをテストするプロジェクトをセットアップして、 .net core 2.0の代わりに1.1のターゲットを作成すると、十分に面白いことがわかりました。

これは、ドライバが.netコアにまだ存在しないメソッド(および名前空間?)を検索しているため、実行時エラーSystem.MissingMethodExceptionになります。

この理由は、Sybase.AdoNet4.AseClient.dllターゲットの.NET Framework 4ではなく.NETコア。それはファイル名(AdoNet4)でそれを示唆する。

今のところ、このドライバは.netコアと互換性がないようです。たぶんいつか、欠けているメソッドが.netコアに移植されていると...うまくいくかもしれませんか?

は幸いにも、選択肢のカップルがあります:

  1. System.Data.Odbc名前空間/パッケージを使用してください。 System.Data.Odbcは現在プレリリース版であり、対象は.net core 2.0+となっています。あなたが.net core 1.1にチェーンされているなら、あなたにはあまり適していないかもしれません。
    • 個人的には、私はSystem.Data.Odbcパッケージを使いこなしました。単純なもので動作していましたが、いくつか問題がありました。特に、ストアドプロシージャの戻り値を取得する方法がないようで、名前付きパラメータのサポートが不足していると思います(ODBC)。
  2. AdoNetCore.AseClient名前空間/パッケージを使用してください。多くの欲求不満の後、.net core 1.01.12.0、および.net framework 4.6をターゲットとするドライバで作業しています。あなたがソース/ドキュメントを見て、それがあなたに合っているかどうかを知りたければ、それはavailable on githubです。
    • このドライバを使用するには、パッケージを参照し、using Sybase.Data.AseClient;using AdoNetCore.AseClient;に置き換えます。
+0

私に教えていただきありがとうございます。[Link] [ODBC Preview Package] [1]を使用し始めましたが、まだパフォーマンスをテストしていません。あなたのリンクを見てみましょう! [1]:https://www.nuget.org/packages/System.Data.Odbc/4.5.0-preview1-25914-04 –

関連する問題