Beispiel #1
0
        protected override void DoResolve(EFArtifactSet artifactSet)
        {
            CdmEntityContainer.Rebind();
            StorageEntityContainer.Rebind();

            // its not resolved unless we can resolve both sides
            if (CdmEntityContainer.Status == BindingStatus.Known &&
                StorageEntityContainer.Status == BindingStatus.Known)
            {
                State = EFElementState.Resolved;
            }
        }
Beispiel #2
0
        private static void RetargetMappingsForRenamedStorageEntitySets(
            StorageEntityContainer preExistingStorageEntityContainer,
            StorageEntityContainer newStorageEntityEntityContainer)
        {
            if (null == preExistingStorageEntityContainer ||
                null == newStorageEntityEntityContainer)
            {
                return;
            }

            // find all mappings from database identity to S-side EntitySet for the new artifact
            var newArtifactSSideMappings =
                ConstructDatabaseObjectToEntitySetMappings(newStorageEntityEntityContainer);

            // find all mappings from database identity to S-side EntitySet for the existing artifact
            var existingArtifactSSideMappings =
                ConstructDatabaseObjectToEntitySetMappings(preExistingStorageEntityContainer);

            // find all EntitySets whose name has changed (but whose identity has stayed the same)
            // and update the name part of any ItemBinding which references the old name
            UpdateOldDatabaseObjectReferencesToNewNames(existingArtifactSSideMappings, newArtifactSSideMappings);
        }
Beispiel #3
0
 private void RecordStorageProperties(StorageEntityContainer sec)
 {
     foreach (var es in sec.EntitySets())
     {
         var ses = es as StorageEntitySet;
         if (null != ses)
         {
             var dbObj = DatabaseObject.CreateFromEntitySet(ses);
             var et    = ses.EntityType.Target;
             if (null == et)
             {
                 Debug.Fail("Null EntityType");
             }
             else
             {
                 foreach (var prop in et.Properties())
                 {
                     AddDbObjToPropertiesMapping(dbObj, prop);
                 }
             }
         }
     }
 }
Beispiel #4
0
 private void RecordStorageEntitySetsAndProperties(StorageEntityContainer sec)
 {
     foreach (var es in sec.EntitySets())
     {
         var ses = es as StorageEntitySet;
         if (null != ses)
         {
             var dbObj = DatabaseObject.CreateFromEntitySet(ses);
             _allTablesAndViews.Add(dbObj, ses.LocalName.Value);
             var et = ses.EntityType.Target;
             if (null == et)
             {
                 Debug.Fail("Null EntityType");
             }
             else
             {
                 foreach (var prop in et.Properties())
                 {
                     AddDbObjToColumnMapping(dbObj, prop);
                 }
             }
         }
     }
 }
Beispiel #5
0
        private static Dictionary <DatabaseObject, StorageEntitySet> ConstructDatabaseObjectToEntitySetMappings(StorageEntityContainer sec)
        {
            Debug.Assert(null != sec, "was passed a null StorageEntityContainer");
            var mappings = new Dictionary <DatabaseObject, StorageEntitySet>();

            if (null != sec)
            {
                foreach (var es in sec.EntitySets())
                {
                    var ses = es as StorageEntitySet;
                    if (null != ses)
                    {
                        var dbObj = DatabaseObject.CreateFromEntitySet(ses);
                        mappings.Add(dbObj, ses);
                    }
                }
            }

            return(mappings);
        }