注册

.net4.6,ef迁移到达梦数据库,代码中guid类型的数据,在linq查询中存在Contains guid类型数据时执行sql报错

2021/11/01 1248 3

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:window10
【问题描述】*:
1、数据库之前是sqlserver,已经迁移到达梦8,之前uniqueidentifier类型的数据已迁移为varchar(36);
2、代码框架为.net4.6,orm使用的ef,已使用dm驱动兼容DmProvider.dll;EFDmProvider.EF6.dll;
3、达梦数据库兼容性已修改为兼容sqlserver模式;
code:
image.png
生成的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);
这样执行导致报错:‘无效的数据类型’;

请问这种情况有没有解决方法?

回答 0
暂无回答
扫一扫
联系客服