private string[] GetColumnKeyName(DbEntityEntry entry) { System.Data.Entity.Core.Metadata.Edm.EntitySetBase setBase = ((IObjectContextAdapter)this).ObjectContext.ObjectStateManager.GetObjectStateEntry(entry.Entity).EntitySet; string[] keyNames = setBase.ElementType.KeyMembers.Select(k => k.Name).ToArray(); return(keyNames); }
private string GetTableName(Type entityType) { System.Data.Entity.Core.Objects.ObjectContext octx = (this as IObjectContextAdapter).ObjectContext; System.Data.Entity.Core.Metadata.Edm.EntitySetBase et = octx.MetadataWorkspace.GetItemCollection(System.Data.Entity.Core.Metadata.Edm.DataSpace.SSpace) .GetItems <System.Data.Entity.Core.Metadata.Edm.EntityContainer>() .Single() .BaseEntitySets .Where(x => x.Name == entityType.Name) .Single(); //String tableName = String.Concat(et.MetadataProperties["Schema"].Value, ".", et.MetadataProperties["Table"].Value); return(et.MetadataProperties["Table"].Value.ToString()); }
public string[] GetPrimearyKey <T>(T obj) { System.Data.Entity.Core.Objects.ObjectStateEntry objectStateManager; ((IObjectContextAdapter)_context).ObjectContext.ObjectStateManager.TryGetObjectStateEntry(obj, out objectStateManager); if (objectStateManager == null) { return(null); } System.Data.Entity.Core.Metadata.Edm.EntitySetBase setBase = objectStateManager.EntitySet; string[] keyNames = setBase.ElementType.KeyMembers.Select(k => k.Name).ToArray(); return(keyNames); }