为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:window10
【问题描述】*:
1、数据库之前是sqlserver,已经迁移到达梦8,之前uniqueidentifier类型的数据已迁移为varchar(36);
2、代码框架为.net4.6,orm使用的ef,已使用dm驱动兼容DmProvider.dll;EFDmProvider.EF6.dll;
3、达梦数据库兼容性已修改为兼容sqlserver模式;
code:
生成的sql语句为:
SELECT
"Extent1"."Te_ObjectId" AS "Te_ObjectId",
"Extent1"."Te_Other" AS "Te_Other",
"Extent1"."Te_IsDelete" AS "Te_IsDelete",
"Extent1"."Te_IsYXTerm" AS "Te_IsYXTerm",
"Extent1"."Te_StartYear" AS "Te_StartYear",
"Extent1"."Te_EndYear" AS "Te_EndYear",
"Extent1"."Te_TermType" AS "Te_TermType",
"Extent1"."Te_StartSchoolTime" AS "Te_StartSchoolTime",
"Extent1"."Te_EndSchoolTime" AS "Te_EndSchoolTime",
"Extent1"."Te_IsNowTerm" AS "Te_IsNowTerm",
"Extent1"."Te_IsNowPKTerm" AS "Te_IsNowPKTerm"
FROM dbo."P_Term" AS "Extent1"
WHERE "Extent1"."Te_ObjectId" IN (cast('d9f8416e-08d2-48e2-931d-9562739617b7' as uniqueidentifier), cast('91817ffb-528f-4361-98cd-5039ebf4102a' as uniqueidentifier), cast('b335183f-4227-4d11-94b2-8c058c36d6cd' as uniqueidentifier), cast('530b20ba-a06e-48ec-b7ce-5ffe8b36c7fd' as uniqueidentifier), cast('288a218c-5304-44e0-b154-8c14311e06ed' as uniqueidentifier))
其中in中解析字段出现cast(‘d9f8416e-08d2-48e2-931d-9562739617b7’ as uniqueidentifier);
这样执行导致报错:‘无效的数据类型’;
请问这种情况有没有解决方法?
改成:
WHERE “Extent1”.“Te_ObjectId” IN (‘d9f8416e-08d2-48e2-931d-9562739617b7’,‘91817ffb-528f-4361-98cd-5039ebf4102a’, ‘b335183f-4227-4d11-94b2-8c058c36d6cd’, ‘530b20ba-a06e-48ec-b7ce-5ffe8b36c7fd’, ‘288a218c-5304-44e0-b154-8c14311e06ed’)
即可。