DotNetNext / SqlSugar

.Net aot ORM Fastest ORM Simple Easy VB.NET Sqlite orm Oracle ORM Mysql Orm postgresql ORm SqlServer oRm 达梦 ORM 人大金仓 ORM 神通ORM C# ORM , C# ORM .NET ORM NET5 ORM .NET6 ORM ClickHouse orm QuestDb ,TDengine ORM,OceanBase orm,GaussDB orm ,Tidb orm Object/Relational Mapping

Home Page:https://www.donet5.com/Home/Doc

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

操作数类型冲突: uniqueidentifier 与 bigint 不兼容

xiaochanghai opened this issue · comments

提示: 操作数类型冲突: uniqueidentifier 与 bigint 不兼容

方法:await _db.Queryable().WithCacheIF(blnUseCache, 10).In(objId).SingleAsync()
objId 是guid类型

不知道如何解,麻烦作者赐教 谢谢
image

实体主键是guid类型

问题描述清楚
1、数据库是什么?
2、objId是什么类型
3、数据库主键是什么类型
4、错误的 message是什么

问题描述清楚 1、数据库是什么? 2、objId是什么类型 3、数据库主键是什么类型 4、错误的 message是什么

数据库是 sql server
objId是guid
数据库主键是guid
错误的 message是操作数类型冲突: uniqueidentifier 与 bigint 不兼容

截图具体错误

截图具体错误

image

db.CodeFirst.InitTables<Uniatafa>();//建表
object id1 = Guid.NewGuid();
db.Insertable(new Uniatafa() { Name = "a", xx = (Guid)id1 }).ExecuteCommand();
var list = db.Queryable<Uniatafa>().InSingleAsync(id1).GetAwaiter().GetResult();
 public class Uniatafa
 {
     [SugarColumn(IsPrimaryKey =true)]
     public Guid xx { get; set; }
     public string Name { get; set; }
 }

不能重现你说的问题,上面测试用例 写一个可以重现的 DEMO

我怀疑是你数据库类型有问题可能你数据库是 bigint

db.CodeFirst.InitTables<Uniatafa>();//建表
object id1 = Guid.NewGuid();
db.Insertable(new Uniatafa() { Name = "a", xx = (Guid)id1 }).ExecuteCommand();
var list = db.Queryable<Uniatafa>().InSingleAsync(id1).GetAwaiter().GetResult();
 public class Uniatafa
 {
     [SugarColumn(IsPrimaryKey =true)]
     public Guid xx { get; set; }
     public string Name { get; set; }
 }

不能重现你说的问题,上面测试用例 写一个可以重现的 DEMO

好的 我试试 谢谢

我怀疑是你数据库类型有问题可能你数据库是 bigint
数据库是guid的 这个可以确定 数据库是老项目设计好的

那就需要DEMO了,不能重现

那就需要DEMO了,不能重现

抱歉啊 我测试demo是ok的 可能是我自己封装的仓库里面写的有问题
我在找找 谢谢

那就需要DEMO了,不能重现

麻烦关一下issue 谢谢 打扰了