我有一个来自 DB 模型的电话号码表。该表有一个带有“自动增量”值的主键 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() 方法因无法将一个转换为另一个而犹豫不决。

我错过了什么?

最佳答案

您不必设置字段,
该字段在您提交模型时初始化

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

关于C# .Net Linq 添加带有身份字段的新记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53016885/

10-12 01:57