/// <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 SharedTableEntryMap( [NotNull] ITable table, [NotNull] IUpdateAdapter updateAdapter, [NotNull] SharedTableEntryValueFactory <TValue> createElement) { _table = table; _updateAdapter = updateAdapter; _createElement = createElement; _comparer = new EntryComparer(table); }
/// <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 virtual TValue GetOrAddValue([NotNull] IUpdateEntry entry, [NotNull] SharedTableEntryValueFactory <TValue> createElement) { var mainEntry = GetMainEntry(entry); if (_entryValueMap.TryGetValue(mainEntry, out var sharedCommand)) { return(sharedCommand); } sharedCommand = createElement(_table.Name, _table.Schema, _comparer); _entryValueMap.Add(mainEntry, sharedCommand); return(sharedCommand); }
/// <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 SharedTableEntryMap( [NotNull] IStateManager stateManager, [NotNull] IReadOnlyDictionary <IEntityType, IReadOnlyList <IEntityType> > principals, [NotNull] IReadOnlyDictionary <IEntityType, IReadOnlyList <IEntityType> > dependents, [NotNull] string name, [CanBeNull] string schema, [NotNull] SharedTableEntryValueFactory <TValue> createElement) { _stateManager = stateManager; _principals = principals; _dependents = dependents; _name = name; _schema = schema; _createElement = createElement; _comparer = new EntryComparer(principals); }