0

私のASP Net 5アプリケーションをIBM Db2データベースに接続する必要があります。asp netでIBM DB2データベースにアクセスする5

私は、これらのnugetパッケージが見つかりました:

https://www.nuget.org/profiles/IBMDB2EF

を、私は、このチュートリアルの後:

https://www.ibm.com/developerworks/community/blogs/96960515-2ea1-4391-8170-b0515d08e4da/entry/sample_ef7_application_for_ibm_data_servers?lang=en

をしかし、それは動作しません。

マイproject.json

"dependencies": { 
"EntityFramework.IBMDataServer": "7.0.0-beta1", 
. . . 

}

マイStarup.cs

公共ボイドConfigureServices(IServiceCollectionサービス) {。 。 。

 services.AddEntityFramework() 
      .AddDb2() 
      .AddDbContext<DB2.Models.Users.UserContext>(); 

     services.AddScoped<IUserRepository, UserRepository>(); 
    } 

マイDBContext

using Microsoft.Data.Entity; 
using IBM.Data.Entity; 

namespace DB2.Models.Users 
{ 
    public class UserContext: DbContext 
    { 
     public DbSet<User> User { get; set; } 

     protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) 
     { 
      optionsBuilder.UseDb2(@"Server=x.x.x.x;Database=x;password=x;uid=x;"); 
      base.OnConfiguring(optionsBuilder); 
     }   
    } 
} 

マイリポジトリ

using System.Linq; namespace DB2.Models.Users { public class UserRepository: IUserRepository { private UserContext _context; public UserRepository(UserContext context) { _context = context; } public void pass() { var x = _context.User.First(); } } } 

行を実行

"VAR X = _context.User.First();"私は、このエラーを示しています。

System.BadImageFormatException was unhandled by user code 
    FileName=IBM.Data.DB2, Version=9.7.4.4, Culture=neutral, PublicKeyToken=7c307b91aa13d208 
    FusionLog==== Pre-bind state information === 
LOG: DisplayName = IBM.Data.DB2, Version=9.7.4.4, Culture=neutral, PublicKeyToken=7c307b91aa13d208 
    Fully-specified) 
LOG: Appbase = file:///C:/Users/JOlivas/.dnx/runtimes/dnx-clr-win-x86.1.0.0-rc1-update1/bin/ 
LOG: Initial PrivatePath = NULL 
Calling assembly : (Unknown). 
=== 
LOG: This bind starts in default load context. 
LOG: No application configuration file found. 
LOG: Using host configuration file: 
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config. 
LOG: Post-policy reference: IBM.Data.DB2, Version=9.7.4.4, Culture=neutral, PublicKeyToken=7c307b91aa13d208 
LOG: Fusion is hosted. Check host about this assembly. 
LOG: Try host assembly store with assembly ibm.data.db2, version=9.7.4.4, culture=neutral, publickeytoken=7c307b91aa13d208, processorarchitecture=x86. 
LOG: Try host assembly store with assembly ibm.data.db2, version=9.7.4.4, culture=neutral, publickeytoken=7c307b91aa13d208, processorarchitecture=msil. 
LOG: Try host assembly store with assembly ibm.data.db2, version=9.7.4.4, culture=neutral, publickeytoken=7c307b91aa13d208. 
WRN: Host assembly store does not contain this assembly. 
LOG: Attempting download of new URL file:///C:/Users/JOlivas/.dnx/runtimes/dnx-clr-win-x86.1.0.0-rc1-update1/bin/IBM.Data.DB2.DLL. 
ERR: Failed to complete setup of assembly (hr = 0x8007000b). Probing terminated. 

    HResult=-2147024885 
    Message=Could not load file or assembly 'IBM.Data.DB2, Version=9.7.4.4, Culture=neutral, PublicKeyToken=7c307b91aa13d208' or one of its dependencies. An attempt was made to load a program with an incorrect format. 
    Source=EntityFramework.IBMDataServer 
    StackTrace: 
     at IBM.Data.Entity.Storage.Internal.Db2SqlConnection.CreateDbConnection() 
     at Microsoft.Data.Entity.Internal.LazyRef`1.get_Value() 
     at Microsoft.Data.Entity.Storage.RelationalConnection.Open() 
     at Microsoft.Data.Entity.Query.Internal.QueryingEnumerable.Enumerator.MoveNext() 
     at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() 
     at System.Linq.Enumerable.First[TSource](IEnumerable`1 source) 
     at lambda_method(Closure , QueryContext) 
     at Microsoft.Data.Entity.Query.Internal.QueryCompiler.<>c__DisplayClass18_1`1.<CompileQuery>b__1(QueryContext qc) 
     at Microsoft.Data.Entity.Query.Internal.QueryCompiler.Execute[TResult](Expression query) 
     at Microsoft.Data.Entity.Query.Internal.EntityQueryProvider.Execute[TResult](Expression expression) 
     at System.Linq.Queryable.First[TSource](IQueryable`1 source) 
     at DB2.Models.Users.UserRepository.pass() in D:\Proyectos\MVC\NSEL\DB2\src\DB2\Models\Users\UserRepository.cs:line 16 
     at DB2.Controllers.HomeController.test() in D:\Proyectos\MVC\NSEL\DB2\src\DB2\Controllers\HomeController.cs:line 33 
InnerException: 
+0

「動作しません」と定義します。 – mustaccio

答えて

1

私はあなたがdb2400をマーク見る - これは、IBM iのまたはiSeriesのですか?そうであれば、独自のバージョンのDB2を備えています。上記の内容が当てはまる場合は、IBM i Access for Windowsに付属のものを使用して、以下への参照を追加してください。

C:¥Program Files(x86)¥IBM¥Client Access¥IBM.Data.DB2.iSeries.dll

インストールが異なるディレクトリにある可能性があります。これはあなたがアクセスする必要があるものを提供します。

+0

iSeries。リモートサーバーです。 –

+1

次に、IBM i Access for Windowsをインストールして、上記の.dllを入手してください。 –

関連する問題