[英]Prevent Entity object from being inserted using Linq2Sql
如果我有一个实例化的Entity类,如何防止它插入db.SubmitChanges()
? 假设我需要创建该对象,而不是创建具有相同属性的虚拟对象。
var newPerson = new Person //Entity Object
{
FieldId = 3,
Name = "John"
};
//....
db.SubmitChanges(); //Assume there are other items that will be upserted
如何防止实体跟踪该对象?
编辑:
如下所述,这是我遇到的错误:
经过进一步的测试后,我意识到插入的原因是因为我使用非通用对象修改了初始Entity,这导致了2次插入(一个插入对象,一个新的Person-在示例中)
除非您将其设置为,否则它不会跟踪该对象。
仅创建对象不会将其填充到数据库中。 您需要调用db.Persons.Add(newPerson)
或类似的方法将其附加到集合上,然后EF将开始跟踪新对象。
通常,将实体附加到dbContext时,需要指定该实体的State
属性,以便EF知道是否要插入,更新或删除该实体。 为了使EF不更新数据库,可以将其状态显式设置为Unchanged
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.