实体框架不保存新列

时间:2020-12-22 17:30:37

标签: c# .net entity-framework

我向对象添加了一个新列,并使用 EF 从数据库更新模型。

通常我们会执行以下操作:

context.BulkInsert(records, GetBulkInsertOptions());
context.SaveChanges();

但这似乎不适用于新列。如果我执行以下操作,它会起作用,但显然并不理想。

foreach (var r in records)
{
    context.MyDBObject.Add(r);
    context.Entry(r).State = EntityState.Modified;
    context.SaveChanges();
}

有人可以对此有所了解吗?此外,如果我在保存之前删除数据库中的行,它将插入所有内容,除了我添加的新列。

编辑:使用实体框架 v6.2.0 和 EntityFramework.BulkInsert v6.0.3.8

编辑 2:如果我删除该行,并尝试仅使用以下内容插入一个新对象

context.MyTable.Add(test);
context.SaveChanges()

这也会插入对象,但不包括我的新列。这让我相信它更多是 EF 的错误,而不是我之前提到的 BulkInsert 的错误。

1 个答案:

答案 0 :(得分:1)

问题是由 Mssql 表中的触发器引起的。

Doing context.Database.Log = Console.WriteLine; 帮助我们确定实体框架正在向 SQL 发送正确的查询。在 SQL 中测试查询显示未保存新列。