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);