C# 利用DapperExtensions操作sqlserver数据库 无法insert和update

C# 利用DapperExtensions操作sqlserver数据库 无法insert和update

最近在做WebAPI后台开发,在利用DapperExtensions扩展IDBConnection时,出现不能insert和update,搞来搞去一直是主键ID自增的问题。

entity

public class baseLightStu
    {
        public int Id { get; set; }
        public string tunnelName { get; set; }
    }

sqlserver中建立数据表,并且将Id设置为主键以及标识符自增。

问题

使用如下代码进行insert操作时,提示无法将system.Int64转换为Int32 错误,为此折腾很久

using (DbConnection conn = new SqlConnection(SocketHelper.connStr))
            {
                conn.Open();
                bool updateflg = false;
                baseLightStu tmp = new baseLightStu();
                tmp.Id = 0;
                tmp.tunnelName = "测试";
                
                conn.Insert(tmp);
                conn.Close();
            }

在尝试将entity中的Id删除后,数据库中表不改变后,可以正常插入,但是无法进行update。仔细思考一下,可以明显地想到是由于程序获取不到数据库中的Id主键,无法进行更新数据库,在这里又卡啦好久。

经过对比官方提供的教程,又重新一步步操作,依然有问之前的问题。
dapper-extension官方教程

在多番尝试后,灵机一动,看一下NuGet中的dapperextension版本,果然是最新版1.7.0(20210702更新),而它的上一版是1.6.3(20170809),于是乎,后面大家应该就知道怎么操作啦!

在这里真的不得不吐槽一下,新版本为啥不支持insert和主键自增这种情况呢。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值