예제 #1
0
        //public EntityType GetEntityTypeByModelClass(Type modelClassType)
        //{
        //    var setName = GetContainer().BaseEntitySets.First(s => s.ElementType.Name == modelClassType.Name).Name;
        //    return objectContext.MetadataWorkspace.GetItem<EntityType>(string.Concat(GetNamespaceName(), ".", modelClassType.Name), DataSpace.CSpace);
        //}

        public string GetTableName(DbContext dbContext, Type entityType)
        {
            string entitySQL   = string.Format("SELECT VALUE a FROM {0}.{1} AS a", dbContext.GetContainer().Name, dbContext.GetEntitySetName(entityType));
            string traceString = dbContext.GetObjectContext().CreateQuery <DbDataRecord>(entitySQL, new ObjectParameter[0]).ToTraceString();

            return(SqlParser.ExtractTableName(traceString));
        }