INNER CODE UNIT · C#

GetEscapedTableName

daxnet/apworks-core · src/Apworks.EventStore.AdoNet/AdoNetEventStore.cs:277

        protected string GetEscapedTableName() => $"{BeginLiteralEscapeChar}{this.config.TableName}{EndLiteralEscapeChar}";

        protected IEnumerable<KeyValuePair<string, IDbDataParameter>> GenerateInsertParameters(IDbCommand command, EventDescriptor eventDescriptor, bool includeKeyField = true)
        {
            return typeof(EventDescriptor)
                .GetTypeInfo()
                .GetProperties(BindingFlags.Public | BindingFlags.Instance)
                .Where(p => p.CanRead && (p.PropertyType.IsSimpleType() || p.PropertyType == typeof(object)) &&
                    (includeKeyField || this.config.HasKeyGenerator ? true : p.Name.ToUpper() != "ID"))
                .Select(p =>
                {
                    var parameterName = $"{this.ParameterChar}P_{p.Name}";
                    var parameter = command.CreateParameter();
                    parameter.ParameterName = parameterName;
                    parameter.Value = p.Name == "EventPayload" ?
                        this.PayloadSerializer.Serialize(Type.GetType(eventDescriptor.EventClrType), p.GetValue(eventDescriptor)) :
                        p.GetValue(eventDescriptor);
                    return new KeyValuePair<string, IDbDataParameter>(parameterName, parameter);

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…