IMapMember IMapMember.SetDependencyMode(MemberDependencyMode mode) { return(this.SetDependencyMode(mode)); }
/// <summary> /// Returns a list containing the dependencies of the given entity whose mode match the /// one given. /// </summary> internal static List <object> GetDependencies(this MetaEntity meta, IUberMap map, MemberDependencyMode mode) { var list = new List <object>(); var entity = meta.Entity; if (entity != null && map != null && !map.IsDisposed) { foreach (var member in (IEnumerable <IUberMember>)map.Members) { if (member.DependencyMode != mode) { continue; } if (!member.ElementInfo.CanRead) { continue; } var source = member.ElementInfo.GetValue(entity); if (source == null) { continue; } var type = source.GetType(); if (!type.IsListAlike()) { if (type.IsClass) { list.Add(source); } } else { type = type.ListAlikeMemberType(); if (type.IsClass) { var iter = source as IEnumerable; foreach (var item in iter) { if (item != null) { list.Add(item); } } } } } } return(list); }
/// <summary> /// Sets the type of the dependency defined for this member, if any. /// </summary> /// <param name="mode">The dependency mode.</param> /// <returns>This instance to permit a fluent chaining syntax.</returns> public MapMember <T> SetDependencyMode(MemberDependencyMode mode) { DependencyMode = mode; return(this); }