【发布时间】:2025-12-24 22:45:07
【问题描述】:
我有一张来自数据库模型的电话号码表。该表有一个主键 phoneId 和一个“自动增量”值。我需要插入一个新行,但表的模型版本没有可以为空的 phoneId 成员。如何指定新记录应获取下一个自动增量/标识号?
我正在尝试:
var newPhone = new Phone() {
PhoneId = null,
PhoneNumber = newNumber
};
try {
pdb.Phones.Add(newPhone);
pdb.SaveChanges();
} catch (Exception e) {
Console.WriteLine("COULD NOT ADD new number: {0}", e.Message);
}
在模型PhoneId 中是“长”而不是“长?”。如果不需要,我不想更改模型。如果我重建模型,我将失去更改,并且可能会忘记我为什么需要它。
我尝试复制模型 Phone 类并将该版本的 PhoneId 设置为可为空,但随后 Linq .Add() 方法因无法将一个转换为另一个而停止。
我错过了什么?
【问题讨论】:
-
不要为 PhoneID 分配任何值...省略它。当你插入它时,数据库会给它它的值。
-
谢谢,我回办公室试试。
-
我编辑了你的标签。请记住,Entity Framework 和 LINQ-to-SQL 是两种相互排斥的技术。如有疑问,请阅读标签说明。
-
你能把Phone.cs里面的内容包括进来吗?
标签: c# .net linq linq-to-entities