为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】: 8.0
【操作系统】:windows
【CPU】:
【问题描述】*:
1.aspnetcore 3.1/efcore3.1.24
2.DM.Microsoft.EntityFrameworkCore 3.1.0.20604
3.连接字符串:“Server=172.16.152.42:5236;UserId=zs;PWD=123123;schema=sc_dm_test;varchar36ToGuid=false”
有两个问题:
1。数据迁移可以正常生成,但是在执行迁移的时候scheme不生效,总是直接将表创建到用户名(zs)的模式下,实际我希望是创建到sc_dm_test模式下,该如何配置?
2。如果直接执行dbContext.Database.MigrateAsync()是正常的,但是执行dbContext.Database.EnsureCreated()会提示“Dm.DmException:“6001,[172.16.152.42:5236 (UNKNOW, UNKNOW)]用户名或密码错误”
使用如下代码直接指定模式:options.UseDm("Server=172.16.152.42:5236;UserId=zs;PWD=123123;schema=sc_dm_test;varchar36ToGuid=false", op => op.MigrationsHistoryTable(HistoryRepository.DefaultTableName, "sc_dm_test"));
则会出现SQL报错,如下:
Dm.DmException (0x80004005): 第 8 行, 第 25 列[CREATE]附近出现错误:
语法分析出错 [sql]: {DECLARE
B BOOLEAN ;
BEGIN
SELECT COUNT(NAME) INTO B FROM SYSOBJECTS WHERE TYPE$= 'SCH' AND NAME = 'sc_dm_test';
IF B == 0 THEN
EXECUTE IMMEDIATE 'CREATE SCHEMA "sc_dm_test" ';
END IF;
END;
CREATE TABLE "sc_dm_test"."__EFMigrationsHistory" (
"MigrationId" NVARCHAR2(150) NOT NULL,
"ProductVersion" NVARCHAR2(32) NOT NULL,
CONSTRAINT "PK___EFMigrationsHistory" PRIMARY KEY ("MigrationId")
);
};
连接字符串目前还没有相关参数,只能默认迁移到当前用户默认模式下
我也遇到这样的问题,用最新的DM.Microsoft.EntityFrameworkCore:8.0.0.28188,希望官方能解决