为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】: DM Database Server 64 V8
【操作系统】:银河麒麟V10
【CPU】: X86
【问题描述】*:使用 EfCore 插入四条数据,显示成功,但实际上只成功插入了两条数据,还有两条数据,byte[]字段的数据没有插入成功。
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
Executed DbCommand (161ms) [Parameters=[:p0='?' (Size = 36), :p1='?' (Size = 12), :p2='?' (Size = 44) (DbType = Binary), :p3='?' (Size = 10), :p4='?' (DbType = Object), :p5='?' (Size = 36), :p6='?' (Size = 12), :p7='?' (Size = 779900) (DbType = Binary), :p8='?' (Size = 15), :p9='?' (DbType = Object), :p10='?' (Size = 36), :p11='?' (Size = 12), :p12='?' (Size = 136275) (DbType = Binary), :p13='?' (Size = 11), :p14='?' (DbType = Object), :p15='?' (Size = 36), :p16='?' (Size = 12), :p17='?' (Size = 129) (DbType = Binary), :p18='?' (Size = 16), :p19='?' (DbType = Object)], CommandType='Text', CommandTimeout='30']
BEGIN
INSERT INTO "tenant_settings" ("id", "plugin_key", "settings", "settings_group_key", "tenant_id")
VALUES (:p0, :p1, :p2, :p3, :p4),
(:p5, :p6, :p7, :p8, :p9),
(:p10, :p11, :p12, :p13, :p14),
(:p15, :p16, :p17, :p18, :p19);
END;
从管理工具上查看,只有第一条和第四条数据中的byte[]数据(长度分别是44和129)插入成功了,还有两条数据中的byte[]数据(长度分别是779900和136275)没有插入。
数据库表的定义如下:
CREATE TABLE "SYSDBA"."tenant_settings"
(
"id" NVARCHAR2(450) NOT NULL,
"tenant_id" NVARCHAR2(450),
"plugin_key" NVARCHAR2(450),
"settings_group_key" NVARCHAR2(450),
"settings" BLOB,
CONSTRAINT "PK_tenant_settings" NOT CLUSTER PRIMARY KEY("id"),
CONSTRAINT "FK_TS_tnt_tsets" FOREIGN KEY("tenant_id") REFERENCES "SYSDBA"."tenants"("id") ON DELETE CASCADE ) STORAGE(ON "MAIN", CLUSTERBTR) ;
CREATE OR REPLACE UNIQUE INDEX "IX_TS_tid_pkey_grpkey" ON "SYSDBA"."tenant_settings"("tenant_id" ASC,"plugin_key" ASC,"settings_group_key" ASC) STORAGE(ON "MAIN", CLUSTERBTR);
注意:4条记录都插入到数据库中了,只是其中两条记录中的BLOB字段的数据没有插入成功,插入了0个字节的数据。
更新:
1.使用EfCore往部署在Windows上面的达梦里边插入数据是没有这个问题的。
2.直接用ado.net驱动往部署在麒麟V10上的达梦数据库插入也是没有问题的。
疑问:
是不是跟什么设置有关?
麒麟上面达梦数据库的部署是完全按照文档 https://eco.dameng.com/document/dm/zh-cn/start/install-dm-linux-prepare.html 进行操作的。
有人能解答一下吗?
1.遇到过类似的问题,需要你这边提供一下数据库版本和.net接口的版本。
2.确认一下插入blob字段不成功是否跟长度有关;
3.最好提供一下重现问题的示例DEMO程序,方便更快定位排查问题。