c# - 实体框架中的零或一对多
问题描述
我的情况如下: Periodic Task 实体可以有很多 Task,但是一个 Task 可以没有或只有一个 Periodic Task 与之关联。也就是说,我需要Task Periodic on Task的外键为空。但是,即使使用以下语句,我也无法通过实体框架进行此配置:
public int? PeriodicTaskID
有哪些可能的解决方案?
非常感谢。
public class Task
{
public int TaskID { get; set; }
public int? PeriodicTaskID { get; set; }
public virtual PeriodicTask PeriodicTask { get; set; }
}
public class PeriodicTask
{
public int PeriodicTaskID { get; set; }
public virtual ICollection<Task> Tasks { get; set; }
}
解决方案
您可以像这样通过数据注释定义关系;
public class Task
{
public int TaskID { get; set; }
public int? PeriodicTaskID { get; set; }
[ForeignKey("PeriodicTaskID ")]
public virtual PeriodicTask PeriodicTask { get; set; }
}
通过流畅的 API;
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
//..
modelBuilder.Entity<Task>()
.HasOne(t => t.PeriodicTask)
.WithMany(pt => pt.Tasks);
}
推荐阅读
- javascript - 如何以角度制作日期输入掩码?
- rsa - 如何使用 bip32 生成 rsa 密钥对?甚至可能吗?
- tinymce - 自定义格式在“所见即所得的附加选项”中不起作用
- audio - 在 ffmpeg 音量音频过滤器中使用“音量”参数
- google-cloud-platform - 在 Bigquery UI 上禁用文本选择弹出窗口
- php - SyntaxError:格式错误的十六进制字符转义序列
- javascript - 当内容滚动到视图中时如何激活动画
- powerbi - 在 PowerBi 嵌入式编辑器中自定义可视化工具栏
- amazon-web-services - Amazon S3:将规则重定向到 API 网关不起作用
- c# - 需要方法签名说明