C# .Net Linq 添加带有标识字段的新记录
C# .Net Linq adding new record with identity field
我有一个来自数据库模型的 table 个 phone 个数字。 table 有一个主键 phoneId
和一个 "autoincrement" 值。我需要插入一个新行,但 table 的模型版本没有可为 null 的 phoneId
成员。如何指定新记录应获得下一个 autoincrement/identity 编号?
我正在尝试:
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
中是 "long" 而不是 "long?"。如果不需要,我不想更改模型。如果我重建模型,我将丢失更改并且可能会忘记我为什么需要它。
我尝试复制模型 Phone
class 并将该版本的 PhoneId
设置为可为空,但随后 Linq .Add()
方法停止了,因为它无法转换一个给另一个。
我错过了什么?
您不必设置该字段,
该字段在您提交模型时被初始化
var newPhone = new Phone() {
PhoneNumber = newNumber
};
try {
pdb.Phones.Add(newPhone);
pdb.SaveChanges();
} catch (Exception e) {
Console.WriteLine("COULD NOT ADD new number: {0}", e.Message);
}
该模型没有 phoneID,因为数据库会在您插入记录时设置该值。主键也不能为空。
看看示例 A:在上面的 link 中...您会看到他们省略了 IDENTITY 字段。
var newPhone = new Phone();
newPhone.PhoneNumber = newNumber;
try
{
pdb.Phones.Add(newPhone);
pdb.SaveChanges();
}
catch (Exception e)
{
Console.WriteLine("COULD NOT ADD new number: {0}", e.Message);
}
我有一个来自数据库模型的 table 个 phone 个数字。 table 有一个主键 phoneId
和一个 "autoincrement" 值。我需要插入一个新行,但 table 的模型版本没有可为 null 的 phoneId
成员。如何指定新记录应获得下一个 autoincrement/identity 编号?
我正在尝试:
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
中是 "long" 而不是 "long?"。如果不需要,我不想更改模型。如果我重建模型,我将丢失更改并且可能会忘记我为什么需要它。
我尝试复制模型 Phone
class 并将该版本的 PhoneId
设置为可为空,但随后 Linq .Add()
方法停止了,因为它无法转换一个给另一个。
我错过了什么?
您不必设置该字段, 该字段在您提交模型时被初始化
var newPhone = new Phone() {
PhoneNumber = newNumber
};
try {
pdb.Phones.Add(newPhone);
pdb.SaveChanges();
} catch (Exception e) {
Console.WriteLine("COULD NOT ADD new number: {0}", e.Message);
}
该模型没有 phoneID,因为数据库会在您插入记录时设置该值。主键也不能为空。
看看示例 A:在上面的 link 中...您会看到他们省略了 IDENTITY 字段。
var newPhone = new Phone();
newPhone.PhoneNumber = newNumber;
try
{
pdb.Phones.Add(newPhone);
pdb.SaveChanges();
}
catch (Exception e)
{
Console.WriteLine("COULD NOT ADD new number: {0}", e.Message);
}