首页 > 解决方案 > EF Core Linq 将 int 值更改为 -2147482646

问题描述

我正在将 EFCore 与 Linq to Sql 一起使用。该表仅包含两列,VolunteerId 和 RoleId。我的 Linq 是:

        VolunteerRole vr = new VolunteerRole();
        vr.RoleId = 9;
        vr.VolunteerId = 0;
        _db.VolunteerRoles.Add(vr);

        await _db.SaveChangesAsync();

linq 没什么特别的。但是,在 SQL Server 中进行跟踪时,实际生成的 sql 语句为:

exec sp_executesql N'SET NOCOUNT ON;INSERT INTO [VolunteerRole] ([VolunteerId], [RoleId]) VALUES (@p0, @p1);',N'@p0 int,@p1 tinyint',@p0=-2147482646,@p1=9

所以出于某种原因,int值“0”被更改为“-2147482646”。我假设这是 int.MinValue?但为什么?为什么我不能简单地将 int 设置为 0,这是我的数据库中的有效值?

谢谢!

标签: c#sqlentity-frameworklinqef-core-3.1

解决方案


推荐阅读