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

4

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

代码:

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();

异常:

违反了“PK_Actors”主键约束。在对象“dbo.Actors”中无法插入重复键。

我的表有两列:ID和Name,其中ID是主键。

3个回答

6
在您的 .dbml 设计器中,请确保将 ID 字段标记为“自动生成的值”。您可以在字段的属性视图中找到此选项。
通常,这会根据数据库中的表进行初始化,因此如果数据库中将ID设置为自动生成的值,则设计器会自动将“自动生成的值”设置为true。
您也可以在代码中将所需字段标记为“自动生成的值”。
在生成的代码后台中搜索 ID 属性,并在 Column 属性中设置值:IsDbGenerated=true

我在哪里搜索ID属性? - mohammad reza
ID 属性应该在表 Actor 中的设计师里。 - bruno conde

3

您是否已将Actor表中的“ID”设置为身份字段?如果没有,请在Google或Stack Overflow上进行快速搜索。此外,请确保在ID列的设计文件中设置了自动生成属性。


1

看起来你期望ID是自动生成的。如果是这样,请确保设计器中的属性设置正确。一旦列被正确配置,最简单的方法就是从设计器中删除表格,然后再添加回去。它应该会捕获字段上的标识属性并将其配置为在添加记录时不尝试插入它。当然,如果你没有将其设置为表格中的标识属性,你需要先这样做或找到一种在插入之前生成ID并分配唯一值的方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接