C#.Net Linq用身份字段添加新记录

7 R*_*eds 4 .net c# linq linq-to-entities

我有一个来自数据库模型的电话号码表.该表具有一个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);
    }
Run Code Online (Sandbox Code Playgroud)

在模型中PhoneId是"长"而不是"长?".如果我不需要,我不想改变模型.如果我重建模型,我将失去变化,可能会忘记为什么我需要它.

我尝试复制模型Phone类并将该版本设置PhoneId为可空但后来Linq .Add()方法拒绝,因为它无法将一个转换为另一个.

我错过了什么?

Far*_*naz 5

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

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);
}
Run Code Online (Sandbox Code Playgroud)