使用IBM.EntityFrameworkCore设置库列表

问题描述

我读过in the docs,您必须将SystemNaming属性设置为true才能在连接字符串中使用库列表属性。我看不到使用IBM.EntityFrameworkCore的方法

在设置中:

"ConnectionStrings": {
    "CodeCamp": "Server=serverURL.com:446; Database=DB; UID=user; PWD=password; LibraryList=MyLib;"

在DBContext.cs

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
    optionsBuilder.UseDb2(_config.GetConnectionString("CodeCamp"),p =>
    {
        p.SetServerInfo(IBMDBServerType.AS400,IBMDBServerVersion.AS400_07_01);
        p.UseRowNumberForPaging();
        p.MaxBatchSize(1);
    });
}

解决方法

您应该声明一个UseDb2,而不是将连接字符串传递给DB2Connection。此连接将允许您设置SystemNaming。然后,您可以将DB2Connection传递给UseDb2。这需要IBM.Data.DB2.Core软件包。

DB2Connection connection = new DB2Connection(connectionString);
connection.SystemNaming = true;
optionsBuilder.UseDb2(connection,p =>
    {
        p.SetServerInfo(IBMDBServerType.AS400,IBMDBServerVersion.AS400_07_01);
        p.UseRowNumberForPaging();
        p.MaxBatchSize(1);
    });