2012-10-30 82 views
2

我正在创建一个使用linq to sql来创建,编辑和删除汽车和比赛结果的asp.net站点。每辆车都有自己的号码,它已被设置为主键。每个结果都有一个结果编号,结果和汽车之间有多对一的关系。在LINQ to SQL中选择主键值

要创建一个新的汽车对象,我使用Car DataContext,它根据需要使用DataContext.SubmitChanges()函数自动更新数据库。但它不会更新主键,而是通过递增最大的当前值来选择新的主键。

由于每辆车的号码都很重要,有没有办法使用这种方法选择主键值?或者我应该将车号分开,并使用单独的代码来确保身份证是唯一的?

+0

您的汽车表具有自动增量(标识)键。这就是为什么你得到递增的主键值。你可以在你的问题中粘贴你的Car table'create'语句。 – Habib

回答

2

正如你在你的问题中所提到的,保持Car号码与它的ID是分开的。原因是有两个汽车可能在某些时候具有相同的数字,除此之外,数据库无论如何都选择其自己的值。

只需在您的Car表中添加另一个字段来记录其编号,您应该很好。

有关更多信息,请参阅Update primary key value using entity framework

+0

谢谢。我使用主钥匙作为汽车号码的原因是因为汽车号码需要不同。我将实施一个新的领域,并添加一些逻辑来检查它是唯一的。 –