【发布时间】:2021-07-14 20:44:30
【问题描述】:
我对实体框架核心有疑问。我正在尝试将DbUser 添加到数据库中。
public class DbUser
{
public int Id { get; set; }
public ulong DiscordId {get; set; }
public int Points { get; set; } = 0;
public bool Daily { get; set; } = true;
}
using (var context = new DiscordContext())
{
context.Database.EnsureCreated();
var user = new DbUser()
{
DiscordId = (ulong) 332282501902893056
};
context.Users.Add(user);
context.SaveChanges();
}
当我保存更改时,它会引发异常。
System.InvalidCastException:无法将“System.UInt64”类型的对象转换为“System.Int64”类型。
在 Microsoft.EntityFrameworkCore.ChangeTracking.ValueComparer`1.Equals(Object left, Object right)
在 Microsoft.EntityFrameworkCore.ChangeTracking.Internal.ChangeDetector.LocalDetectChanges(InternalEntityEntry 条目)
在 Microsoft.EntityFrameworkCore.ChangeTracking.Internal.ChangeDetector.DetectChanges(IStateManager stateManager)
在 Microsoft.EntityFrameworkCore.ChangeTracking.ChangeTracker.DetectChanges()
在 Microsoft.EntityFrameworkCore.DbContext.TryDetectChanges()
在 Microsoft.EntityFrameworkCore.DbContext.SaveChanges(Boolean acceptAllChangesOnSuccess)
在 Microsoft.EntityFrameworkCore.DbContext.SaveChanges()
在 bot.Program.Main(String[] args) in -----------------:line 22
我只是无法添加 ulong 值,因为它会自动转换为 long。
【问题讨论】:
-
你能显示你的数据库创建表脚本吗?
-
将其更改为
long是否有效?public long DiscordId {get; set; }
标签: c# entity-framework .net-core entity-framework-core