🦄 .NET aot orm, C# orm, VB.NET orm, Mysql orm, Postgresql orm, SqlServer orm, Oracle orm, Sqlite orm, Firebird orm, 达梦 orm, 人大金仓 orm, 神通 orm, 翰高 orm, 南大通用 orm, 虚谷 orm, 国产 orm, Clickhouse orm, QuestDB orm, MsAccess orm.
3.99k
stars
842
forks
source link
InsertOrUpdate方法唯一索引bug #1768
Open
MoDao1990217 opened 1 month ago
问题描述及重现代码:
InsertOrUpdate()
.SetSource(data)
.ExecuteAffrowsAsync();
在执行时,似乎是以主键为主,主键存在时执行更新,不存在时,执行插入。当表中除了主键外,还有唯一索引时,唯一索引存在时,则不会执行更新,而是直接报错,报索引冲突。
SetSource的重载方法,指定临时主键仅对 SqlServer/PostgreSQL/Firebird/达梦/南大通用/金仓/神通 有效
而InsertOrUpdate()
.SetSource(data).ExecuteMySqlBulkCopy()
则不存在此问题,唯一索引存在时,也会执行更新,不存在时,也会执行插入。
数据库版本
mysql 5.7
安装的Nuget包
各版本都有此问题
.net framework/. net core? 及具体版本
net core6-net core8