Esempio n. 1
0
        /// <summary>
        /// Returns object1 from a link table entity given a Ria services change set and a find method.
        /// </summary>
        /// <typeparam name="TObject1"></typeparam>
        /// <typeparam name="TObject2"></typeparam>
        /// <param name="linkTableEntity"></param>
        /// <param name="changeSet"></param>
        /// <param name="find">function to find and retrieve an entity in a repository.</param>
        /// <returns></returns>
        public static TObject1 FetchObject1 <TObject1, TObject2>(
            this LinkTable <TObject1, TObject2> linkTableEntity, ChangeSet changeSet,
            Func <object[], TObject1> find)
            where TObject1 : class
            where TObject2 : class
        {
            var properties           = TypeDescriptor.GetProperties(linkTableEntity.GetType());
            var navProp              = properties["Object1"];
            var associationAttribute =
                navProp.Attributes.OfType <AssociationAttribute>().SingleOrDefault();

            return(Find(
                       linkTableEntity, linkTableEntity.Object1, changeSet, find, associationAttribute));
        }
Esempio n. 2
0
        /// <summary>
        /// Returns object1 from a link table entity given a Ria services change set and an EntityFramework DbContext.
        /// </summary>
        /// <typeparam name="TObject1"></typeparam>
        /// <typeparam name="TObject2"></typeparam>
        /// <param name="linkTableEntity"></param>
        /// <param name="changeSet"></param>
        /// <param name="dbContext"></param>
        /// <returns></returns>
        public static TObject1 FetchObject1 <TObject1, TObject2>(
            this LinkTable <TObject1, TObject2> linkTableEntity, ChangeSet changeSet,
            System.Data.Entity.DbContext dbContext)
            where TObject1 : class where TObject2 : class
        {
            var properties           = TypeDescriptor.GetProperties(linkTableEntity.GetType());
            var navProp              = properties["Object1"];
            var associationAttribute =
                navProp.Attributes.OfType <AssociationAttribute>().SingleOrDefault();

            return(Find(
                       linkTableEntity, linkTableEntity.Object1, changeSet, keys => dbContext.Set <TObject1>().Find(keys),
                       associationAttribute));
        }