How to get ObjectSet's entity key name?

后端 未结 7 1432
悲哀的现实
悲哀的现实 2020-12-29 00:08

I\'ve created a generic ObjectSet in my generic repository.

What I would like to get is the name of the EntityKey of ObjectS

7条回答
  •  渐次进展
    2020-12-29 00:36

    var objContext = ((IObjectContextAdapter)this.context).ObjectContext;

    var objSet = objContext.CreateObjectSet();

    var entityKey = objContext.CreateEntityKey(objSet.EntitySet.Name, entityToUpdate);

    Object foundEntity;

    var exits = objContext.TryGetObjectByKey(entityKey, out foundEntity);

    if (exits && this.dbset.Local != null && this.dbset.Local.Contains(foundEntity) &&this.dbset.Local.Any())                    
    {
      if (entityKey.EntityKeyValues != null && entityKey.EntityKeyValues.Any())                       
      {       
        DbEntityEntry entry = this.context.Entry(this.dbset.Find(entityKey.EntityKeyValues.FirstOrDefault().Value));
                            entry.CurrentValues.SetValues(entityToUpdate);
       }
    }
    
    this.context.SaveChanges();
    

提交回复
热议问题