Esempio n. 1
0
        public ObjectTrackingInfo GetTrackingInfo(object obj)
        {
            if (obj == null)
            {
                throw new ArgumentNullException("obj");
            }

            ObjectTrackingInfo objTrkInfo;

            if (!ObjectsTracking.TryGetValue(obj, out objTrkInfo))
            {
                var entityMap = Context.ContextMap.EntityMaps.SingleOrDefault(q => q.EntityType == obj.GetType() || q.EntityType == obj.GetType().BaseType);
                if (entityMap == null)
                {
                    throw new Exception("Entity does not have an associated map.");
                }

                objTrkInfo = new ObjectTrackingInfo(obj, entityMap.GetDbSet(Context), false);
                //entityMap.RelationshipMaps.Select(
                ObjectsTracking.Add(obj, objTrkInfo);
            }

            return(objTrkInfo);
        }
 public RelationshipTrackingInfo(ObjectTrackingInfo thisObjectTrackingInfo, RelationshipMap map, RelationshipTrackingInfoPair pair)
 {
     ObjectTrackingInfo       = thisObjectTrackingInfo;
     RelationshipMap          = map;
     RelationshipTrackingPair = pair;
 }