Serilog mssql sink Тип данных SqlColumn - PullRequest
0 голосов
/ 02 апреля 2019

Я пытаюсь добавить дополнительный столбец для моей регистрации в SQL Server. В примерах они дают нечто очень похожее на следующее:

var columnOptions = new ColumnOptions
        {
            AdditionalDataColumns = new Collection<SqlColumn>
            {
                new SqlColumn { DataType = SqlDbType.NVarChar, DataLength = 20, ColumnName = "B" }
            }
        }

Проблема, с которой я столкнулся, заключается в том, что мой компилятор продолжает жаловаться на использование типа SqlColumn, говоря, что оно неизвестно. Я использую .Net 4.6.1. Что мне нужно добавить к моему использованию? У меня уже есть следующее:

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.IdentityModel.Tokens;
using System.Linq;
using System.Web.Http;
using System.Web.Http.ExceptionHandling;
using System.Net.Http.Formatting;
using Dapper;
using Microsoft.AspNet.SignalR;
using Microsoft.Owin;
using Microsoft.Owin.Cors;
using Microsoft.Owin.Security;
using Microsoft.Owin.Security.Jwt;
using Newtonsoft.Json.Serialization;
using Owin;
using Serilog;
using Serilog.Filters;
using Serilog.Sinks.MSSqlServer;
using SerilogWeb.Classic.WebApi;

EDIT

Я только что попытался создать весь новый проект веб-API, и следующий код также не будет работать, по какой-то причине я не могу получить доступ к типу SqlColumn. Обратите внимание, что ошибка в том, что тип не существует в пространстве имен (это не ошибка из-за конструктора).

using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Owin;
using Owin;
using Serilog;
using Serilog.Sinks.MSSqlServer;

[assembly: OwinStartup(typeof(TestProject.Startup))]

namespace TestProject
{
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            ConfigureAuth(app);
            var x = new Serilog.Sinks.MSSqlServer.SqlColumn();
        }
    }
}

1 Ответ

3 голосов
/ 03 апреля 2019

Вам потребуется обновить Serilog.Sinks.MSSqlServer до предварительно выпущенной версии 5.1.3-dev-00232 , так как она не существует в версии 5.1.2

Install-Package Serilog.Sinks.MSSqlServer -Version 5.1.3-dev-00232

Или вы можете добавить столбец, используя DataColumn тип в версии 5.1.2 , как показано ниже

var columnOptions = new ColumnOptions
{
    AdditionalDataColumns = new Collection<DataColumn>
    {
        new DataColumn {DataType = typeof (string), ColumnName = "User"},
        new DataColumn {DataType = typeof (string), ColumnName = "Other"},
    }
};

var log = new LoggerConfiguration()
    .WriteTo.MSSqlServer(@"Server=.\SQLEXPRESS;Database=LogEvents;Trusted_Connection=True;", "Logs", columnOptions: columnOptions)
    .CreateLogger();
...