private void PopulateMetadata(MongoContext context)
{
lock (this.instanceMetadataCache)
{
foreach (var collectionName in GetCollectionNames(context))
{
var resourceSet = this.instanceMetadataCache.ResolveResourceSet(collectionName);
if (this.Configuration.PrefetchRows == 0)
{
if (resourceSet == null)
{
AddResourceSet(context, collectionName);
}
}
else
{
PopulateMetadataFromCollection(context, collectionName, resourceSet);
}
}
foreach (var prop in this.unresolvedProperties)
{
var providerType = typeof (string);
var propertyName = NormalizeResourcePropertyName(prop.PropertyName);
this.instanceMetadataCache.AddPrimitiveProperty(prop.CollectionType, propertyName, providerType);
this.instanceMetadataCache.ProviderTypes.Add(
GetQualifiedPropertyName(prop.CollectionType.Name, propertyName), providerType);
}
}
}