我有一个父表(来自oracle dataBase)和一些子表,我可以使用下面的Update
方法成功更新父实体,但不能使用子代表。
顺便问一下,我可以在这里使用通用实体吗?
public void UpdateEnt<T>(T entity) where T : parent_table
{
if (entity == null)
{
throw new ArgumentException("Cannot add a null entity.");
}
using (var _context = (DataModelDetach)d.GetContextForRead(Module))
{
var entry = _context.Entry<T>(entity);
if (entry.State == EntityState.Detached)
{
var set = _context.Set<T>();
T attachedEntity = set.Include(x => x.children_1).Include(x => x.children_2).SingleOrDefault(e => e.idSeq == entity.idSeq);
if (attachedEntity != null)
{
var attachedEntry = _context.Entry(attachedEntity);
attachedEntry.CurrentValues.SetValues(entity);
}
else
{
entry.State = EntityState.Modified; // This should attach entity
}
}
}
}