实体框架不将新实体插入数据库

时间:2018-03-06 14:02:30

标签: c# entity-framework ef-code-first

我正在尝试通过执行以下操作将特定实体插入到数据库中:

var myItem = new Item() { // properties here...};

myContext.Entry(myItem).State = EntityState.Added;
myContext.SaveChanges();

但是,EF(v6.2)甚至没有将插入SQL语句发送到Db。

对于所有其他实体,插入工作正常。我也没有使用自动检测更改。

有没有办法调试为什么EF没有创建SQL语句,即。为什么它没有将新实体识别为new

2 个答案:

答案 0 :(得分:1)

变化:

var myItem = new Item() { // properties here...};

myContext.Entry(myItem).State = EntityState.Added;
myContext.SaveChanges();

要:

var myItem = new Item() { // properties here...};

myContext.TableName.Add(myItem);
myContext.SaveChanges();

答案 1 :(得分:0)

这可能与您的背景的不当处置有关。确保在使用后立即处理您的上下文,如下所示:

using(var myContext = new MyContext())
{
   var myItem = new Item() { // properties here...};

   myContext.Entry(myItem).State = EntityState.Added;
   myContext.SaveChanges();
}