Asp.Net Core 3.1 MVC使用代码优先迁移创建NLog表架构

问题描述

我正在将NLog用于Asp.Net Core 3.1 Web应用程序。 我正在尝试使用迁移为日志记录创建表。

我正在尝试转换此脚本:

SET ANSI_NULLS ON
 SET QUOTED_IDENTIFIER ON
 CREATE TABLE [dbo].[Log] (
     [Id] [int] IDENTITY(1,1) NOT NULL,[Application] [nvarchar](50) NOT NULL,[Logged] [datetime] NOT NULL,[Level] [nvarchar](50) NOT NULL,[Message] [nvarchar](max) NOT NULL,[Logger] [nvarchar](250) NULL,[Callsite] [nvarchar](max) NULL,[Exception] [nvarchar](max) NULL,CONSTRAINT [PK_dbo.Log] PRIMARY KEY CLUSTERED ([Id] ASC)
     WITH (PAD_INDEX  = OFF,STATISTICS_NORECOMPUTE  = OFF,IGNORE_DUP_KEY = OFF,ALLOW_ROW_LOCKS  = ON,ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
 ) ON [PRIMARY]

要迁移,但是我不知道如何处理约束部分。我是否需要添加一些代码来说明该约束部分,或者只是去:

add-migration已添加日志表

更新数据库

到目前为止,我已经创建了表格模型:

public class Log
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    [Required]
    [MaxLength(50)]
    public string Application { get; set; }

    [Required]
    public DateTime Logged { get; set; }

    [Required]
    [MaxLength(50)]
    public string Level { get; set; }


    [Required]
    [MaxLength]
    public string Message { get; set; }

    [MaxLength(250)]
    public string Logger { get; set; }

    [MaxLength]
    public string Callsite { get; set; }

    [MaxLength]
    public string Exception { get; set; }
}

然后我有了数据库上下文类:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
    {
        public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
            : base(options)
        {
        }

        public DbSet<Log> DbLogs { get; set; }

        protected override void OnModelCreating(ModelBuilder builder)
        {
            base.OnModelCreating(builder);
            //builder.Seed();

             foreach(var foreignKey in builder.Model.GetEntityTypes()
                .SelectMany(e=> e.GetForeignKeys()))
             {
                foreignKey.DeleteBehavior = DeleteBehavior.Restrict;
                
             }
        }

    }

请您提供一些帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...