使用LINQ to SQL插入数据时出错

时间:2009-07-23 12:23:58

标签: c# linq

当我使用以下代码插入数据时,我看到了异常。我该怎么办?

代码:

Movie_List_DBDataContext Movie_list1 = new Movie_List_DBDataContext();
Actor act = new Actor();

act.Actor_Name = Acttxt.Text;

Movie_list1.Actors.InsertOnSubmit(act);
Movie_list1.SubmitChanges();

例外:

  

违反PRIMARY KEY约束'PK_Actors'。无法在对象'dbo.Actors'中插入重复键。

我的桌子有两列; ID和名称,ID是主键。

3 个答案:

答案 0 :(得分:6)

.dbml设计器中,确保ID字段标记为“自动生成的值”。您可以在该字段的属性视图中找到它。

通常,这会根据数据库中的表进行初始化,因此,如果在数据库中将ID设置为自动生成的值,设计器将自动将“自动生成的值”设置为true。

您还可以在代码中将所需字段标记为“自动生成的值”。

在后面生成的代码中搜索ID属性,并在Column属性中设置值:IsDbGenerated=true

答案 1 :(得分:3)

您是否在Actor-table中将“ID”设置为标识字段?如果你还没有,快速搜索谷歌或堆栈溢出将告诉你如何。还要确保在ID列的设计器文件中设置了autogenerate属性。

答案 2 :(得分:1)

您希望自动生成ID。如果是这种情况,请确保设计器中的属性设置正确。一旦正确配置了列,最简单的方法是从设计器中删除表,然后将其添加回来。它应该在字段上获取identity属性并对其进行配置,以便在添加记录时不会尝试插入它。当然,如果您没有在表中将其设置为标识属性,则需要首先执行此操作,或者想出一种方法来生成id,并在执行插入之前为其分配唯一值。