c# - 迁移不适用于 ON CASCADE DELETE 行为的所有外键
问题描述
我正在使用 Entity Framework Core 5,并且正在测试表关系。使用这两个类作为实体
public class Absenta
{
public int id { get; set; }
public DateTime dataAbsemta { get; set; }
public bool Motivata { get; set; }
public string UserID { get; set; }
public ApplicationUser User { get; set; }
public int TrainingID { get; set; }
public Training Training { get; set; }
}
public class Training
{
public int TrainingID { get; set; }
[DisplayName("Training")]
public string Name { get; set; }
public string FilePath { get; set; }
[DisplayName("Clasa")]
public string NumeClasa { get; set; }
[DisplayName("Sala")]
public string NumeSala { get; set; }
[DisplayName("Data incepere : ")]
[DataType(DataType.Date)]
public DateTime DataInceput { get; set; }
[DisplayName("Data sfarsit : ")]
[DataType(DataType.Date)]
public DateTime DataSfarsit { get; set; }
public ICollection<Absenta> absente { get; set; }
}
这是生成的查询:
CONSTRAINT [PK_Absente]
PRIMARY KEY CLUSTERED ([id] ASC),
CONSTRAINT [FK_Absente_AspNetUsers_UserID]
FOREIGN KEY ([UserID]) REFERENCES [dbo].[AspNetUsers] ([Id]),
CONSTRAINT [FK_Absente_Traininguri_TrainingID]
FOREIGN KEY ([TrainingID]) REFERENCES [dbo].[Traininguri] ([TrainingID])
ON DELETE CASCADE
迁移完美地工作,创建表和外键,但对于UserID
外键它默认不应用ON DELETE CASCADE
行为。
有没有办法可以将其设置为班级的默认值?我试图避免为每个表手动设置它。
解决方案
想出了解决办法。您所要做的就是使用[Required]
数据注释:
[Required]
public string UserID { get; set; }
public ApplicationUser User { get; set; }
推荐阅读
- linux - 如何从第二行使用 awk '{print $1*Number}' 或告诉他忽略 NaN 值?
- python - PYTHON - Itertools.combinations 导致内存错误
- ios - 当 Swift 闭包暴露给 Objective-C 时如何自动生成参数名称?
- python - 两个函数相等布尔值在python中无法正常工作
- c# - 当用户在 C# 中取消操作时,如何停止从 Oracle db 查询数据?
- r - 在 R 中输入 NA BINARY SEX 数据
- terraform - Terraform:引用输出变量时不支持的属性
- powershell - 如何在工作流中访问 InLineScript 中的 ForEach 变量?
- excel - 当范围是动态的时返回多个匹配项
- c++ - 在 OSX mac 中使用 QT6 和 Opencv 架构 x86_64 的未定义符号