Beispiel #1
0
    /// <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 void MergeInto(IConventionEntityType entityType, IConventionTrigger detachedTrigger)
    {
        var newTrigger = new Trigger(
            (IMutableEntityType)entityType,
            detachedTrigger.ModelName,
            detachedTrigger.TableName,
            detachedTrigger.TableSchema,
            detachedTrigger.GetConfigurationSource());

        MergeInto(detachedTrigger, newTrigger);
    }
Beispiel #2
0
    /// <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 void MergeInto(IConventionTrigger detachedTrigger, IConventionTrigger existingTrigger)
    {
        var nameConfigurationSource = detachedTrigger.GetNameConfigurationSource();

        if (nameConfigurationSource != null)
        {
            ((InternalTriggerBuilder)existingTrigger.Builder).HasName(
                detachedTrigger.Name, nameConfigurationSource.Value);
        }

        ((InternalTriggerBuilder)existingTrigger.Builder).MergeAnnotationsFrom(
            (Trigger)detachedTrigger);
    }
Beispiel #3
0
    private static bool AreCompatible(IConventionTrigger checkConstraint, IConventionTrigger baseTrigger)
    {
        var baseTable = StoreObjectIdentifier.Create(baseTrigger.EntityType, StoreObjectType.Table);

        if (baseTable == null)
        {
            return(true);
        }

        if (checkConstraint.GetName(baseTable.Value) != baseTrigger.GetName(baseTable.Value) &&
            checkConstraint.GetNameConfigurationSource() is ConfigurationSource nameConfigurationSource &&
            !nameConfigurationSource.OverridesStrictly(baseTrigger.GetNameConfigurationSource()))
        {
            return(false);
        }

        return(true);
    }