我在实体框架核心2.0中使用简单的一对一关系。
modelBuilder.Entity<Profile>()
.HasOne(p => p.Avatar)
.WithOne()
.HasForeignKey<Profile>(p => p.AvatarId);
每个个人资料只有一个头像。
查看数据库管理应用程序并没有告诉我(或者至少我没有找到)一对一和一对多关系之间的任何差异。所以我的意思是我找不到任何一对一不同的特殊约束。
数据库如何知道我定义了哪种关系?如果它不知道,为什么我会定义我正在使用的关系类型?
答案 0 :(得分:3)
如果您在数据库中看不到任何外键或主键,则它不知道。或者更具体地说:您将被允许保存违反关系的数据。
关系的完整性在使用外键的数据库中强制执行,但这肯定不会阻止您提交错误连接表的SQL。
这是一个定义外键的链接,可确保根据表中的数据保证一对一的关系。 http://www.tech-recipes.com/rx/56738/one-to-one-one-to-many-table-relationships-in-sql-server/。