private ReferenceMetadataFlags CreateFlags(ReferenceMetadata parent) { ReferenceMetadataFlags flags = ReferenceMetadataFlags.None; if (parent.Relation.Annotations.OfType <KeyAttribute>().Any()) { flags |= ReferenceMetadataFlags.CandidateKey; } if (parent.Relation.Annotations.OfType <RefAttribute>().Any()) { flags |= ReferenceMetadataFlags.ForeignKey; } return(flags); }
public static bool HasAnyFlag(this IReferenceMetadata metadata, ReferenceMetadataFlags flag) => (metadata.Flags & flag) != ReferenceMetadataFlags.None;
public static bool HasFlag(this IReferenceMetadata metadata, ReferenceMetadataFlags flag) => (metadata.Flags & flag) == flag;
public static bool HasAnyFlag(this IProjectionMetadata metadata, ReferenceMetadataFlags flag) => (metadata.Relation != null && metadata.Reference.HasAnyFlag(flag));