我在 Entity Framework 核心 2.0 中使用简单的一对一关系。
modelBuilder.Entity<Profile>()
.HasOne(p => p.Avatar)
.WithOne()
.HasForeignKey<Profile>(p => p.AvatarId);
每个个人资料只有一个头像。
查看数据库管理应用程序并没有向我显示(或者至少我没有发现)一对一和一对多关系之间的任何差异。所以我的意思是我找不到一对一与一对多不同的任何特殊约束。
数据库如何知道我定义了哪种关系?如果它不知道,为什么我要定义我正在使用的关系类型?
最佳答案
如果您在数据库中看不到任何外键或主键,那么它就不知道。或者更具体地说:您将被允许保存违反关系的数据。
关系的完整性是通过外键在数据库中强制执行的,但这肯定不会阻止您提交错误地连接表的 SQL。
这里是定义外键的链接,可确保基于表中的数据保证一对一关系。 http://www.tech-recipes.com/rx/56738/one-to-one-one-to-many-table-relationships-in-sql-server/ 。
关于c# - 数据库如何表示一对一关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47825775/