[英]Assign UserId to my child entity results in a 2n UserId1 column in the sql table
[英]Why does DB2 put my UserId from the connection string as my table name?
我正在嘗試使用 Entity Framework Core 來查詢我的 DB2 數據庫。 這是我注冊它的方法:
services.AddDbContext<DB2Contexte>(options =>
options.UseDb2(Configuration.GetConnectionString("DB2"),
builder =>
{
builder.SetServerInfo(IBMDBServerType.AS400, IBMDBServerVersion.AS400_07_01);
builder.UseRowNumberForPaging();
builder.MaxBatchSize(1);
}));
這就是 class 用作 DbSet:
還有我的連接字符串:
服務器=某事;用戶 ID=U_SERVTI;密碼=某事;數據庫=某事; 庫列表=某事;當前函數路徑=*LIBL
比我嘗試使用簡單的 LINQ 查詢數據庫時:
_dbContext.PersonneRessource.FirstOrDefault()
我收到此錯誤:
錯誤 [42704] [IBM][AS] SQL0204N “U_SERVTI.DX37PERE”是未定義的名稱。
為什么名稱中有 UserId? 它不應該只查詢表並省略用戶ID嗎?
我使用 IBM.EntityFrameworkCore-lnx 版本 3.1.0.500。
Db2 for IBM i,由於歷史原因,支持兩種命名約定; SYS 和 SQL。
默認情況下,外部連接將使用 SQL 命名,就像 Db2 系列的 rest 一樣,不合格的表引用將被隱式限定為“運行時授權標識符”; 通常是用於連接的用戶 ID。
使用 SYS 命名,不合格的表引用由 *LIBL 限定,並且庫列表用於查找表。
在您的連接字符串上,您將要添加Naming=SYS
(或者可能是Naming=*SYS
)
請注意,SYS 與 SQL 的命名會影響幾乎所有不合格的參考。 請務必查看文檔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.