Exemplo n.º 1
0
        /// <summary>
        /// Returns the equivalent generic <see cref="T:System.Data.Entity.Infrastructure.DbMemberEntry`2" /> object.
        /// </summary>
        /// <typeparam name="TEntity"> The type of entity on which the member is declared. </typeparam>
        /// <typeparam name="TProperty"> The type of the property. </typeparam>
        /// <returns> The equivalent generic object. </returns>
        public DbMemberEntry <TEntity, TProperty> Cast <TEntity, TProperty>() where TEntity : class
        {
            MemberEntryMetadata entryMetadata = this.InternalMemberEntry.EntryMetadata;

            if (!typeof(TEntity).IsAssignableFrom(entryMetadata.DeclaringType) || !typeof(TProperty).IsAssignableFrom(entryMetadata.MemberType))
            {
                throw Error.DbMember_BadTypeForCast((object)typeof(DbMemberEntry).Name, (object)typeof(TEntity).Name, (object)typeof(TProperty).Name, (object)entryMetadata.DeclaringType.Name, (object)entryMetadata.MemberType.Name);
            }
            return(DbMemberEntry <TEntity, TProperty> .Create(this.InternalMemberEntry));
        }
Exemplo n.º 2
0
        /// <summary>
        ///     Returns the equivalent generic <see cref="DbMemberEntry{TEntity,TProperty}" /> object.
        /// </summary>
        /// <typeparam name="TEntity"> The type of entity on which the member is declared. </typeparam>
        /// <typeparam name="TProperty"> The type of the property. </typeparam>
        /// <returns> The equivalent generic object. </returns>
        public DbMemberEntry <TEntity, TProperty> Cast <TEntity, TProperty>() where TEntity : class
        {
            var metadata = InternalMemberEntry.EntryMetadata;

            if (!typeof(TEntity).IsAssignableFrom(metadata.DeclaringType) ||
                !typeof(TProperty).IsAssignableFrom(metadata.MemberType))
            {
                throw Error.DbMember_BadTypeForCast(
                          typeof(DbMemberEntry).Name,
                          typeof(TEntity).Name,
                          typeof(TProperty).Name,
                          metadata.DeclaringType.Name,
                          metadata.MemberType.Name);
            }

            return(DbMemberEntry <TEntity, TProperty> .Create(InternalMemberEntry));
        }
 private static DbMemberEntry ImplicitConvert(DbMemberEntry nonGeneric)
 {
     return(nonGeneric);
 }
 private void NonGenericTestMethodCollectionAsMember(DbMemberEntry nonGenericEntry, string name)
 {
     Assert.Same(name, nonGenericEntry.Name);
     Assert.IsType <DbCollectionEntry>(nonGenericEntry);
 }
Exemplo n.º 5
0
 private void NonGenericTestMethodRefAsMember(DbMemberEntry nonGenericEntry, string name)
 {
     Assert.Same(name, nonGenericEntry.Name);
     Assert.IsType <DbReferenceEntry>(nonGenericEntry);
 }
Exemplo n.º 6
0
        /// <summary>
        ///     Gets an object that represents a member of the entity.  The runtime type of the returned object will
        ///     vary depending on what kind of member is asked for.  The currently supported member types and their return
        ///     types are:
        ///     Reference navigation property: <see cref="DbReferenceEntry" />.
        ///     Collection navigation property: <see cref="DbCollectionEntry" />.
        ///     Primitive/scalar property: <see cref="DbPropertyEntry" />.
        ///     Complex property: <see cref="DbComplexPropertyEntry" />.
        /// </summary>
        /// <param name="propertyName"> The name of the member. </param>
        /// <returns> An object representing the member. </returns>
        public DbMemberEntry Member(string propertyName)
        {
            Check.NotEmpty(propertyName, "propertyName");

            return(DbMemberEntry.Create(_internalEntityEntry.Member(propertyName)));
        }
Exemplo n.º 7
0
 /// <summary>
 /// Gets an object that represents a member of the entity.  The runtime type of the returned object will
 /// vary depending on what kind of member is asked for.  The currently supported member types and their return
 /// types are:
 /// Reference navigation property: <see cref="T:System.Data.Entity.Infrastructure.DbReferenceEntry" />.
 /// Collection navigation property: <see cref="T:System.Data.Entity.Infrastructure.DbCollectionEntry" />.
 /// Primitive/scalar property: <see cref="T:System.Data.Entity.Infrastructure.DbPropertyEntry" />.
 /// Complex property: <see cref="T:System.Data.Entity.Infrastructure.DbComplexPropertyEntry" />.
 /// </summary>
 /// <param name="propertyName"> The name of the member. </param>
 /// <returns> An object representing the member. </returns>
 public DbMemberEntry Member(string propertyName)
 {
     Check.NotEmpty(propertyName, nameof(propertyName));
     return(DbMemberEntry.Create(this._internalEntityEntry.Member(propertyName, (Type)null)));
 }
Exemplo n.º 8
0
 private void NonGenericTestMethodPropAsMember(DbMemberEntry nonGenericEntry, string name)
 {
     Assert.Same(name, nonGenericEntry.Name);
     Assert.IsType <DbPropertyEntry>(nonGenericEntry);
 }