我正在尝试通过执行以下操作将特定实体插入到数据库中:
var myItem = new Item() { // properties here...};
myContext.Entry(myItem).State = EntityState.Added;
myContext.SaveChanges();
但是,EF(v6.2)甚至没有将插入SQL语句发送到Db。
对于所有其他实体,插入工作正常。我也没有使用自动检测更改。
有没有办法调试为什么EF没有创建SQL语句,即。为什么它没有将新实体识别为new
?
答案 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();
}