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
https://www.donet5.com/Home/Doc
MIT License
5.17k stars 1.32k forks source link

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

Closed xiaochanghai closed 2 months ago

xiaochanghai commented 2 months ago

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

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

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

实体主键是guid类型

DotNetNext commented 2 months ago

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

xiaochanghai commented 2 months ago

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

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

DotNetNext commented 2 months ago

截图具体错误

xiaochanghai commented 2 months ago

截图具体错误

image

DotNetNext commented 2 months ago
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

DotNetNext commented 2 months ago

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

xiaochanghai commented 2 months ago
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

好的 我试试 谢谢

xiaochanghai commented 2 months ago

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

DotNetNext commented 2 months ago

那就需要DEMO了,不能重现

xiaochanghai commented 2 months ago

那就需要DEMO了,不能重现

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

xiaochanghai commented 2 months ago

那就需要DEMO了,不能重现

麻烦关一下issue 谢谢 打扰了