Show / Hide Table of Contents

Class DataMigration

Data migration class performs data level modifications (change member type, migrate member, update member, rename member, delete member etc).

Inheritance
System.Object
ClassMigrationBase
InstanceMigration
DataMigration
Implements
IInstanceMigration
IReferenceMigration
IClassMigration
IMigration
Inherited Members
InstanceMigration.MigrateReference(MigrationContext)
InstanceMigration.CompatibleSchemaTypes
ClassMigrationBase.Migrate(MigrationContext)
ClassMigrationBase.MigrationManager
Namespace: Eco.Core.Serialization.Migrations
Assembly: Eco.Core.dll
Syntax
public class DataMigration : InstanceMigration, IInstanceMigration, IReferenceMigration, IClassMigration, IMigration

Constructors

DataMigration(IEnumerable<String>)

Declaration
public DataMigration(IEnumerable<string> compatibleTypes)
Parameters
Type Name Description
System.Collections.Generic.IEnumerable<System.String> compatibleTypes

DataMigration(String)

Declaration
public DataMigration(string compatibleType)
Parameters
Type Name Description
System.String compatibleType

Methods

AddMember(String, IDataInput[], Func<ReaderDataInput[], ReaderDataInput>)

Declaration
public void AddMember(string memberName, IDataInput[] dependencies, Func<ReaderDataInput[], ReaderDataInput> addMember)
Parameters
Type Name Description
System.String memberName
IDataInput[] dependencies
System.Func<ReaderDataInput[], ReaderDataInput> addMember

AddMember<TDst>(String, IDataInput[], Func<ReaderDataInput[], TDst>)

Declaration
public void AddMember<TDst>(string memberName, IDataInput[] dependencies, Func<ReaderDataInput[], TDst> addMember)
Parameters
Type Name Description
System.String memberName
IDataInput[] dependencies
System.Func<ReaderDataInput[], TDst> addMember
Type Parameters
Name Description
TDst

AddPrecondition(IDataInput[], Predicate<Object[]>)

Adds pre-condition for data migration. If pre-condition fails then migration will not be applied.

Declaration
public void AddPrecondition(IDataInput[] inputs, Predicate<object[]> predicate)
Parameters
Type Name Description
IDataInput[] inputs
System.Predicate<System.Object[]> predicate

AddPrecondition(IEnumerable<String>, Predicate<Object[]>)

Adds pre-condition for data migration. If pre-condition fails then migration will not be applied.

Declaration
public void AddPrecondition(IEnumerable<string> argMembers, Predicate<object[]> predicate)
Parameters
Type Name Description
System.Collections.Generic.IEnumerable<System.String> argMembers
System.Predicate<System.Object[]> predicate

AddPrecondition<T>(String, Predicate<T>)

Adds pre-condition for data migration. If pre-condition fails then migration will not be applied.

Declaration
public void AddPrecondition<T>(string memberName, Predicate<T> predicate)
Parameters
Type Name Description
System.String memberName
System.Predicate<T> predicate
Type Parameters
Name Description
T

AddReferenceMember(String, String, IDataInput[], Func<ReaderDataInput[], (String, Int32)>)

Declaration
public void AddReferenceMember(string memberName, string memberSchemaType, IDataInput[] dependencies, Func<ReaderDataInput[], (string, int)> referenceGenerator)
Parameters
Type Name Description
System.String memberName
System.String memberSchemaType
IDataInput[] dependencies
System.Func<ReaderDataInput[], System.ValueTuple<System.String, System.Int32>> referenceGenerator

ChangeMemberSchemaType(String, String, Boolean)

Declaration
public void ChangeMemberSchemaType(string memberName, string newSchemaType, bool skipIfMissing = false)
Parameters
Type Name Description
System.String memberName
System.String newSchemaType
System.Boolean skipIfMissing

ChangeSchemaType(String)

Changes class schema type to newSchemaType. I.e. after all members converted you may decide to convert class itself to another type.

Declaration
public void ChangeSchemaType(string newSchemaType)
Parameters
Type Name Description
System.String newSchemaType

Initialize(MigrationManager)

Declaration
public override void Initialize(MigrationManager migrationManager)
Parameters
Type Name Description
MigrationManager migrationManager
Overrides
ClassMigrationBase.Initialize(MigrationManager)

Member(String)

Declaration
public MemberDataInput Member(string name)
Parameters
Type Name Description
System.String name
Returns
Type Description
MemberDataInput

MigrateInstance(MigrationContext)

Declaration
public override void MigrateInstance(MigrationContext context)
Parameters
Type Name Description
MigrationContext context
Overrides
ClassMigrationBase.MigrateInstance(MigrationContext)

MigrateMember(String, IMigration, Boolean)

Declaration
public void MigrateMember(string memberName, IMigration migration, bool skipIfMissing = false)
Parameters
Type Name Description
System.String memberName
IMigration migration
System.Boolean skipIfMissing

RenameMember(String, String, Boolean)

Declaration
public void RenameMember(string oldMemberName, string newMemberName, bool skipIfMissing = false)
Parameters
Type Name Description
System.String oldMemberName
System.String newMemberName
System.Boolean skipIfMissing

ReplaceMember(String, IDataInput[], Func<ReaderDataInput[], ReaderDataInput>)

Declaration
public void ReplaceMember(string memberName, IDataInput[] dependencies, Func<ReaderDataInput[], ReaderDataInput> memberGenerator)
Parameters
Type Name Description
System.String memberName
IDataInput[] dependencies
System.Func<ReaderDataInput[], ReaderDataInput> memberGenerator

ReplaceMember<TDst>(String, IDataInput[], Func<ReaderDataInput[], TDst>)

Declaration
public void ReplaceMember<TDst>(string memberName, IDataInput[] dependencies, Func<ReaderDataInput[], TDst> memberGenerator)
Parameters
Type Name Description
System.String memberName
IDataInput[] dependencies
System.Func<ReaderDataInput[], TDst> memberGenerator
Type Parameters
Name Description
TDst

UpdateMember(String, IDataInput[], Func<ReaderDataInput, ReaderDataInput[], ReaderDataInput>)

Declaration
public void UpdateMember(string memberName, IDataInput[] dependencies, Func<ReaderDataInput, ReaderDataInput[], ReaderDataInput> updateMember)
Parameters
Type Name Description
System.String memberName
IDataInput[] dependencies
System.Func<ReaderDataInput, ReaderDataInput[], ReaderDataInput> updateMember

UpdateMember<TSrc, TDst>(String, IDataInput[], Func<TSrc, ReaderDataInput[], TDst>, Func<TDst>)

Declaration
public void UpdateMember<TSrc, TDst>(string memberName, IDataInput[] dependencies, Func<TSrc, ReaderDataInput[], TDst> updateMember, Func<TDst> whenMissing = null)
Parameters
Type Name Description
System.String memberName
IDataInput[] dependencies
System.Func<TSrc, ReaderDataInput[], TDst> updateMember
System.Func<TDst> whenMissing
Type Parameters
Name Description
TSrc
TDst

UpdateMember<TSrc, TDst>(String, Func<TSrc, TDst>)

Updates member by converting old value to new value. Member schema type changes accordingly.

Declaration
public void UpdateMember<TSrc, TDst>(string memberName, Func<TSrc, TDst> updateMember)
Parameters
Type Name Description
System.String memberName
System.Func<TSrc, TDst> updateMember
Type Parameters
Name Description
TSrc
TDst

UpdateMember<TSrc, TDst>(String, String[], Func<TSrc, Object[], TDst>)

Declaration
public void UpdateMember<TSrc, TDst>(string memberName, string[] dependencies, Func<TSrc, object[], TDst> updateMember)
Parameters
Type Name Description
System.String memberName
System.String[] dependencies
System.Func<TSrc, System.Object[], TDst> updateMember
Type Parameters
Name Description
TSrc
TDst

UpdateMemberFromDataInput<TDst>(String, IDataInput[], Func<ReaderDataInput, ReaderDataInput[], TDst>)

Updates member using ReaderDataInput as original value. It produces value of TDst type.

Declaration
public void UpdateMemberFromDataInput<TDst>(string memberName, IDataInput[] dependencies, Func<ReaderDataInput, ReaderDataInput[], TDst> updateMember)
Parameters
Type Name Description
System.String memberName
IDataInput[] dependencies
System.Func<ReaderDataInput, ReaderDataInput[], TDst> updateMember
Type Parameters
Name Description
TDst

Implements

IInstanceMigration
IReferenceMigration
IClassMigration
IMigration

Extension Methods

PropertyChanges.FirePropertyChanged(Object, String)
PropertyChanges.FirePropertyChanged(Object, String, Object, Object)
PropertyChanges.FirePropertyChanged(Object, MemberChangedBeforeAfterEventArgs)
DataMigrationExtensions.UpdateMember<T>(DataMigration, String, Func<T, T>)
DataMigrationExtensions.UpdateMember<TSrc, TDst>(DataMigration, String, Func<TSrc, TDst>)
DataMigrationExtensions.UpdateMember<T>(DataMigration, String, String[], Func<T, Object[], T>)
DataMigrationExtensions.AddMember<TDst>(DataMigration, String, Func<TDst>)
DataMigrationExtensions.AddMember<TDst>(DataMigration, String, String[], Func<Object[], TDst>)
DataMigrationExtensions.AddMember(DataMigration, String, IDataInput)
DataMigrationExtensions.ReplaceMember<TDst>(DataMigration, String, Func<TDst>)
DataMigrationExtensions.ReplaceMember(DataMigration, String, IDataInput)
DataMigrationExtensions.MigrateMember(DataMigration, String, Action<DataMigration>, Boolean)
DataMigrationExtensions.MigrateArrayMemberEntries(DataMigration, String, String, IMigration, Boolean)
DataMigrationExtensions.MigrateArrayMemberEntries(DataMigration, String, String, String, IMigration, Boolean)
DataMigrationExtensions.MigrateEnumerableMemberEntries(DataMigration, String, String, String, IMigration, Boolean)
☀
☾
In This Article
Back to top
Copyright (c) Strange Loop Games 2021
☀
☾