实体框架,如果不指定主键就无法添加新对象

时间:2018-11-23 09:54:45

标签: c# sql sql-server

我正在尝试使用Identity使表在插入时自动递增键。当我使用简单的SQL查询插入值时,效果很好。

CREATE TABLE [dbo].[extrak] 
(
    [Id]                   INT         IDENTITY (1, 1) NOT NULL,
    [kategorianev]         VARCHAR(50) NULL,
    [nev]                  VARCHAR(50) NULL,
    [ar]                   INT         NULL,
    [szin]                 VARCHAR(50) NULL,
    [tobbszor_hasznalhato] TINYINT     NULL,

    PRIMARY KEY CLUSTERED ([Id] ASC)
);

但是,当我使用C#代码添加值时,出现一个异常,提示我应该set identity_insert on(我想这是我想指定主键的时候,但是我可能错过了一些东西)。我也尝试将其设置为打开,但没有成功(在调用add方法之前)。

extrak extra = new extrak();
extra.kategorianev = categoryname;
extra.nev = name;
extra.ar = price;
extra.szin = color;
extra.tobbszor_hasznalhato = b;
Console.WriteLine("1");
DataBaseHandler.AddNewExtra(extra);
Console.WriteLine("2");
DataBaseHandler.SaveDB();

保存时发生异常。我是否必须为自己找到新的主键,然后以这种方式插入?还是可以让Entity Framework以某种方式处理它?<​​/ p>

1 个答案:

答案 0 :(得分:0)

我的伴侣知道了。我必须在VS中更新模型才能使其正常工作。

之后,上面的代码运行良好。

enter image description here