例如,我有下表:
客户信息
cus_id: auto increment, int, is Identity
cus_name: nvarchar
如果我使用以下代码插入记录“Peter”,
string name = "Peter";
DataContext DC = new DataContext();
CustomerInfo newCustomer = new CustomerInfo();
newCustomer.cus_name = name;
DC.CustomerInfos.InsertOnSubmit(newCustomer);
DC.SubmitChanges();
返回如下错误,
Can't perform Create, Update, or Delete operations on 'Table(CustomerInfo)' because it has no primary key.
我是否需要自定义 cus_id
或任何其他解决方案?谢谢!
最佳答案
首先,LINQ-To-SQL 需要主键才能执行插入和更新,因此您可能必须在表中添加主键。
现在,因为它是一个自动递增的标识列,所以在您的 dbml 中,您必须选择“CustomerInfo”表的列“cus_id”并转到属性并设置以下内容:
- 自动生成的值:真</li>
- 自动同步:插入时
这将确保当您插入一个新行时,它将获得一个新的 id。
关于c# - 如何插入具有自动递增编号的新记录作为主键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17962815/