sky*_*fer 5 entity-framework-core
我正在使用EF Core,并且在保存新实体时遇到问题。
这是我的模特班
[Column("Id")]
public int ID { get; set; }
[Required]
[Column("Pratica", TypeName = "varchar(10)")]
public string PRATICA { get; set; }
[Column("Anno")]
public int ANNO { get; set; }
[Required]
[Column("Variante", TypeName = "varchar(2)")]
public string VARIANTE { get; set; }
Run Code Online (Sandbox Code Playgroud)
在这里,我创建并初始化一个新的PRAT对象:
var prat = new PRAT();
prat.PRATICA = "Prova";
prat.ANNO = 2000;
prat.VARIANTE = "0";
context.PRAT.Add(prat);
context.SaveChangesAsync();
Run Code Online (Sandbox Code Playgroud)
就在context.PRAT.Add(prat)行之后,如果我检查prat.ID成员,我会得到类似-2147482647的信息
在context.SaveChangesAsync之后,出现错误“当IDENTITY_INSERT设置为OFF时,无法在表'Prat'中为标识列插入显式值”
这是生成的SQL语句:
INSERT INTO [Prat] ([Id], [Anno], [Pratica], [Variante]) VALUES (@p0, @p1, @p2, @p3);
Run Code Online (Sandbox Code Playgroud)
如您所见,Id字段已添加到字段列表中,但此字段是Identity!
如果在context.SaveChangesAsync()之前设置
prat.ID = 0
Run Code Online (Sandbox Code Playgroud)
生成的SQL语句是
INSERT INTO [Prat] ([Anno], [Pratica], [Variante]) VALUES (@p0, @p1, @p2);
Run Code Online (Sandbox Code Playgroud)
而且一切正常。
谢谢。
| 归档时间: |
|
| 查看次数: |
648 次 |
| 最近记录: |