コード例 #1
0
        // internal for testing
        internal void CreateEntitySets(
            IEnumerable<TableDetailsRow> tableDetailsRowsForTables,
            IEnumerable<TableDetailsRow> tableDetailsRowsForViews,
            EntityRegister entityRegister)
        {
            Debug.Assert(tableDetailsRowsForTables != null, "tableDetailsRowsForTables != null");
            Debug.Assert(tableDetailsRowsForViews != null, "tableDetailsRowsForViews != null");
            Debug.Assert(entityRegister != null, "entityRegister != null");

            var entitySetsForReadOnlyEntityTypes = new List<EntitySet>();

            CreateEntitySets(tableDetailsRowsForTables, entityRegister, entitySetsForReadOnlyEntityTypes, DbObjectType.Table);

            CreateEntitySets(tableDetailsRowsForViews, entityRegister, entitySetsForReadOnlyEntityTypes, DbObjectType.View);

            if (entitySetsForReadOnlyEntityTypes.Any())
            {
                // readonly entity sets need to be rewritten so that they 
                // contain provider specific SQL query to retrieve the data
                entityRegister.AddEntitySets(
                    EntitySetDefiningQueryConverter.Convert(
                        entitySetsForReadOnlyEntityTypes,
                        _targetEntityFrameworkVersion,
                        _providerInvariantName,
                        _providerManifestToken,
                        _dependencyResolver));
            }
        }