// internal for testing internal static string CreateDefiningQuery(EntitySet entitySet, MetadataWorkspace workspace, DbProviderServices providerServices) { Debug.Assert(entitySet != null, "entitySet != null"); Debug.Assert(workspace != null, "workspace != null"); Debug.Assert(providerServices != null, "providerServices != null"); var inputBinding = entitySet.Scan().BindAs(entitySet.Name); var projectList = new List<KeyValuePair<string, DbExpression>>(entitySet.ElementType.Members.Count); foreach (var member in entitySet.ElementType.Members) { Debug.Assert(member.BuiltInTypeKind == BuiltInTypeKind.EdmProperty, "Every member must be a edmproperty"); var propertyInfo = (EdmProperty)member; projectList.Add( new KeyValuePair<string, DbExpression>( member.Name, inputBinding.Variable.Property(propertyInfo))); } var query = inputBinding.Project(DbExpressionBuilder.NewRow(projectList)); var dbCommandTree = new DbQueryCommandTree(workspace, DataSpace.SSpace, query); return providerServices.CreateCommandDefinition(dbCommandTree).CreateCommand().CommandText; }