Добавить новый столбец в Audit.WebAPI - PullRequest
1 голос
/ 10 апреля 2019

Я пишу журнал аудита в базу данных postgres, используя ядро ​​.net. Я слежу за статьей Audit.WebAPI . все работает нормально. Журнал записи правильно в базу данных. Мое требование - передать некоторую другую информацию при входе в базу данных, но я не могу этого сделать. Пожалуйста, помогите мне.

Таблица Postgresql:

CREATE TABLE log.auditlog
(
  id integer NOT NULL DEFAULT nextval('log.auditlog_id_seq'::regclass),
  inserted_date timestamp without time zone NOT NULL DEFAULT now(),
  updated_date timestamp without time zone NOT NULL DEFAULT now(),
  data jsonb NOT NULL,
  module character varying(100),
  CONSTRAINT auditlog_pkey PRIMARY KEY (id)
)

Здесь я добавляю дополнительное имя столбца как module и хочу установить в него данные.

.Net Core

Audit.Core.Configuration.DataProvider = new PostgreSqlDataProvider()
            {
                ConnectionString = "Server=localhost;Port=5432;User Id=postgres;Password=1234;Database=postgres;",//Local
                TableName = "auditlog",
                IdColumnName = "id",
                DataColumnName = "data",
                DataType = "JSONB",
                Schema = "log",
                LastUpdatedDateColumnName = "updated_date"
            };

Через .NET Core для ведения журнала аудита подойдут любые другие предложения.

1 Ответ

2 голосов
/ 10 апреля 2019

Начиная с версии 14.2.2, теперь вы можете указывать пользовательские столбцы в вашей таблице PostgreSQL с помощью CustomColumn() свободно API:

Audit.Core.Configuration.Setup()
    .UsePostgreSql(config => config
        .ConnectionString("Server=localhost;Port=5432;User Id=postgres;Password=1234;Database=postgres;")
        .TableName("auditlog")
        .IdColumnName("id")
        .DataColumn("data", DataType.JSONB)
        .Schema("log")
        .LastUpdatedColumnName("updated_date")
        .CustomColumn("event_type", ev => ev.EventType)
        .CustomColumn("module", ev => "MyModule"));
...