1

current 是 myclass 的新实例, context.classRepo.bringcontentwithid(userid) 返回它的一个实例。我将此值分配给我的新对象 current 然后尝试在我的数据表中插入新行,但它给了我错误,例如“属性 'ID' 是对象的关键信息的一部分,无法修改”

我不明白的一点是我不想修改任何我只是创建一个实例的东西 make chenges 并将其作为新数据插入。

我怎样才能解决这个问题 ?

   myclass current = new myclass();

    current = context.classRepo.bringcontentwithid(userid);
                    if (current != null)
                    {
                        current.id = context.classRepo.YeniBildirimIdGetir();
                        current.GONDERILDI = "1";
                        context.classRepo.Insert(current);
4

2 回答 2

0

默认情况下,EF 将您ID作为自动增量标识,因此,您在尝试手动分配ID. 为了让 EF 理解这ID将是手动分配的,只需[DatabaseGenerated(DatabaseGeneratedOption.Assign)]按如下方式装饰您的属性:

public class myClass()
{
    [DatabaseGenerated(DatabaseGeneratedOption.Assign)]
    public int ID {get;set;}
}

请确保导入命名空间System.ComponentModel.DataAnnotations.Schema

于 2014-06-16T08:02:54.007 回答
0

更新数据库时不能更改 id 的部分,因此如果要更新字段,应先将其删除,然后将其插入新值,这是更新主键的安全方法(如果主键是复合的key ) 并且您想要更新主键

于 2015-11-16T08:52:08.360 回答