【发布时间】:2011-08-30 09:55:05
【问题描述】:
假设我有以下代码:
TEModule teModule = Context.TEModules.Where(module => module.EnumValue.Equals(text.ModuleName)).FirstOrDefault();
if (teModule == null)
{
teModule = new TEModule();
teModule.EnumValue = text.ModuleName;
Context.TEModules.AddObject(teModule);
//Context.SaveChanges();
TEModule aux = Context.TEModules.Where(module => module.EnumValue.Equals(teModule.ModuleName)).FirstOrDefault();
}
我的问题是,如果我保留“SaveChanges”注释,那么在下一个查询中,辅助对象始终为空,因为 Context.TEModules 为空,即使我调用“AddObject”方法。 但是,如果我在 AddObject 之后调用 SaveChanges,那么在下一个查询中,辅助对象不为空。问题是我不想如此频繁地调用 SaveChanges,因为这不是我添加对象的唯一一段代码,如果这样做,性能会下降。
所以问题是:我是否必须在每次调用 AddObject 后调用 SaveChanges,如果以后我需要知道对象是否已经存在?
【问题讨论】:
标签: entity-framework linq-to-entities add savechanges