繁体   English   中英

防止使用Linq2Sql插入实体对象

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM