/// <summary> /// This is an internal API that supports the Entity Framework Core infrastructure and not subject to /// the same compatibility standards as public APIs. It may be changed or removed without notice in /// any release. You should only use it directly in your code with extreme caution and knowing that /// doing so can result in application failures when updating to a new Entity Framework Core release. /// </summary> public static MemberInfo GetMemberInfo( [NotNull] this IPropertyBase propertyBase, bool forConstruction, bool forSet) { if (propertyBase.TryGetMemberInfo(forConstruction, forSet, out var memberInfo, out var errorMessage)) { return(memberInfo); } throw new InvalidOperationException(errorMessage); }
private static bool ShouldDisableDateTimeNormalization(IPropertyBase propertyBase) { if (propertyBase == null) { return(false); } if (propertyBase.PropertyInfo == null) { return(false); } if (propertyBase.PropertyInfo.IsDefined(typeof(DisableDateTimeNormalizationAttribute), true)) { return(true); } propertyBase.TryGetMemberInfo(false, false, out var memberInfo, out _); return(ReflectionHelper.GetSingleAttributeOfMemberOrDeclaringTypeOrDefault <DisableDateTimeNormalizationAttribute>(memberInfo) != null); }