/// <summary> /// This API supports the Entity Framework Core infrastructure and is not intended to be used /// directly from your code. This API may change or be removed in future releases. /// </summary> public override void Add(InternalEntityEntry entry) { var key = PrincipalKeyValueFactory.CreateFromCurrentValues(entry); if (key == null) { throw new InvalidOperationException(CoreStrings.InvalidKeyValue(entry.EntityType.DisplayName())); } Add(key, entry); }
/// <summary> /// This API supports the Entity Framework Core infrastructure and is not intended to be used /// directly from your code. This API may change or be removed in future releases. /// </summary> public virtual IIncludeKeyComparer CreateIncludeKeyComparer(INavigation navigation, InternalEntityEntry entry) { if (navigation.IsDependentToPrincipal()) { return(navigation.ForeignKey.GetDependentKeyValueFactory <TKey>().TryCreateFromCurrentValues(entry, out var keyValue) ? new DependentToPrincipalIncludeComparer <TKey>(keyValue, PrincipalKeyValueFactory) : (IIncludeKeyComparer) new NullIncludeComparer()); } return(new PrincipalToDependentIncludeComparer <TKey>( PrincipalKeyValueFactory.CreateFromCurrentValues(entry), navigation.ForeignKey.GetDependentKeyValueFactory <TKey>(), PrincipalKeyValueFactory)); }
/// <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 override void Add(InternalEntityEntry entry) { var key = PrincipalKeyValueFactory.CreateFromCurrentValues(entry); if (key == null) { if (Key.IsPrimaryKey()) { throw new InvalidOperationException( CoreStrings.InvalidKeyValue( entry.EntityType.DisplayName(), PrincipalKeyValueFactory.FindNullPropertyInCurrentValues(entry).Name)); } throw new InvalidOperationException( CoreStrings.InvalidAlternateKeyValue( entry.EntityType.DisplayName(), PrincipalKeyValueFactory.FindNullPropertyInCurrentValues(entry).Name)); } Add(key, entry); }
/// <summary> /// This API supports the Entity Framework Core infrastructure and is not intended to be used /// directly from your code. This API may change or be removed in future releases. /// </summary> public virtual void Remove(InternalEntityEntry entry) => Remove(PrincipalKeyValueFactory.CreateFromCurrentValues(entry), entry);
/// <summary> /// This API supports the Entity Framework Core infrastructure and is not intended to be used /// directly from your code. This API may change or be removed in future releases. /// </summary> public virtual void AddOrUpdate(InternalEntityEntry entry) => AddInternal(PrincipalKeyValueFactory.CreateFromCurrentValues(entry), entry);