c# - 如何使用 FluentMigrator 创建一对一的外键
问题描述
我正在使用此代码创建外键:
Create.ForeignKey("FK_Table1_Table2")
.FromTable("Table1").ForeignColumn("Table1_ID")
.ToTable("Table2").PrimaryColumn("Table2_ID");
结果我有一对多的关系:
public class Table1
{
public int Table1_ID { get; set; }
public virtual Table2 Table2 { get; set; }
}
public class Table2
{
public Table2()
{
this.Tables1 = new HashSet<Table1>();
}
public int Table2_ID { get; set; }
public virtual ICollection<Table1> Tables1 { get; set; }
}
但我想看看:
public class Table2
{
public int Table2_ID { get; set; }
public virtual Table1 Table1 { get; set; }
}
有没有办法使用 FluentMigrator 做到这一点?
解决方案
关系数据库对于多/一对一 FK 关系没有特殊的概念。FK 成为“一”的唯一方法是它是否也具有唯一约束。
所以我相信你应该在外键创建代码之后添加这样的东西:
Create.UniqueConstraint()
.OnTable("Table1").Column("Table1_ID");
推荐阅读
- python - django循环静态文件目录
- android - 文本字段中的“00:00”格式(颤振)
- python - Fernet 加密算法的替代方案
- c# - 具有实体框架的存储过程中的可空数据集异常
- swift - 使用 swift grpc 客户端快速的 Google pubsub 客户端?
- xamarin.android - 在 xamarin.android 中管理屏幕旋转时的片段外观
- r - 如何根据第二个值从第一列创建汇总列
- javascript - 如果一个函数返回新的 promise,它是否需要 async 关键字?
- c - unload() 函数的问题(CS50 第 5 周:Speller)
- javascript - 当没有按钮时,如何防止获取请求在 Javascript 中重新加载页面?