c#实体框架如何在删除行后设置自动ID值
我正在使用实体框架 删除记录时如何设置自动ID 例如: 我删除了一条ID为5的记录 如何将第二个ID设置为5,而不是6c#实体框架如何在删除行后设置自动ID值,c#,C#,我正在使用实体框架 删除记录时如何设置自动ID 例如: 我删除了一条ID为5的记录 如何将第二个ID设置为5,而不是6 [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int DataID { set; get; } public string FName { set; get; } public string LName { set; get; } pub
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int DataID { set; get; }
public string FName { set; get; }
public string LName { set; get; }
public string FaName { set; get; }
我说的是数据ID
这就是我删除记录的函数
private void button4_Click(object sender, EventArgs e)
{
using (ScoutContext db = new ScoutContext())
{
var toBeDeleted = (int)dataGridView1.SelectedRows[0].Cells[0].Value;
var userdata = db.ScoutDatas.First(c => c.DataID == toBeDeleted);
db.ScoutDatas.Remove(userdata);
db.SaveChanges();
dataGridView1.Refresh();
}
}
我需要像这样,但在c#
也许是它的工作
var toBeDeleted = (int)dataGridView1.SelectedRows[0].Cells[0].Value;
var userdata = db.ScoutDatas.Where(c => c.DataID >= toBeDeleted).Take(2).ToList();
db.ScoutDatas.Remove(userdata[0]);
userdata[1].DataID = toBeDeleted;
db.SaveChanges();
dataGridView1.Refresh();
这是自动增量吗?请向您展示模型类和dbcontext类。在关系数据库系统中,修改现有记录的主键很少是一个好主意。为什么-1?这不是一个好问题吗?在具有自动递增键的SQL列中,即使删除了所有记录,下一次插入的索引也会递增,并且不会以1开头。如果截断表,它将仅以1开头。如果您仍然需要这种类型的功能,您可以编写自己的逻辑来插入您选择的值。Yes Man it’s work的可能重复项,但在这之后,表的其余部分的IDValue将不正确,因此我需要将ID的自动增量重置为表的其余部分。Houuuuuuuu请参见如果您想全部更新,您可以删除。您需要一个for循环来获得结果。但我不建议这样做。我不知道,你要用在哪里。也许排号更容易。
var toBeDeleted = (int)dataGridView1.SelectedRows[0].Cells[0].Value;
var userdata = db.ScoutDatas.Where(c => c.DataID >= toBeDeleted).Take(2).ToList();
db.ScoutDatas.Remove(userdata[0]);
userdata[1].DataID = toBeDeleted;
db.SaveChanges();
dataGridView1.Refresh();