gpt4 book ai didi

c# - Entity Framework 代码优先异常 "Duplicate entry ' 0' for key ' PRIMARY'"

转载 作者:行者123 更新时间:2023-11-30 23:21:12 24 4
gpt4 key购买 nike

我确实尝试通过 EF5 和 MySQL 制作示例。

[Table("agency")]
class Agency
{
[Key]
[Required]
public int agency_id { get; set; }
public string name { get; set; }
}

class MyContext : DbContext
{
public DbSet<Agency> Agency { get; set; }
}

class Sample
{
public static void Main()
{
using (var db = new MyContext())
{
var query = from x in db.Agency select x.agency_id;
var new_num = query.DefaultIfEmpty<int>().Max(p => p == null ? 0 : p);

new_num++;

Agency a = new Agency
{
agency_id = new_num,
name = "Test"
};

db.Agency.Add(a);
db.SaveChanges();
}
}
}

一开始。成功了。
但是第二次,它在 db.SaveChanges() 中抛出了异常。
{“键‘PRIMARY’的重复条目‘0’”}

随着抛出的异常,我跟踪了变量。
agency_id 肯定是“1”。

怎么了?

更新 1

更新 2

!!!!?????????????????????

最佳答案

好的,我找到了解决方案。

https://stackoverflow.com/a/6752692/415682

DatabaseGeneratedAttribute 是点!!!

[Table("agency")]
class Agency
{
[Required, Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
public int my_id { get; set; }
public string name { get; set; }
}

关于c# - Entity Framework 代码优先异常 "Duplicate entry ' 0' for key ' PRIMARY'",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15382140/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com