c# - 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 addedLogTable
更新数据库
到目前为止,我已经创建了表模型:
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;
}
}
}
我会很感激这方面的帮助。
解决方案
推荐阅读
- javascript - 如何使用 async/await 处理 Firebase Firestore 错误
- julia - 使用 UInt128 数据类型时 Julia 中的大整数除法错误
- c++ - 仍然无法获得有关 IRIW 方案的真正根本原因解释
- apache-spark - Parquet 中的列索引
- django - 如何为表格可视化添加折线图并在 Django 项目中添加下拉菜单?
- mongodb - 如何在Mongoose MongoDb中获取一个部门的所有学生
- android - 在房间查询中获取可变参数大小
- flutter - 对 TabBar 使用 JSON 结果
- android - 状态栏突然改变大小
- java - 连接到 AxonServer 节点 [192.168.99.100:8124] 失败:内部:恐慌!这是一个错误