数据库如何表示一对一的关系?

时间:2017-12-15 04:20:38

标签: c# database entity-framework .net-core entity-framework-core

我在实体框架核心2.0中使用简单的一对一关系。

   modelBuilder.Entity<Profile>()
        .HasOne(p => p.Avatar)
        .WithOne()
        .HasForeignKey<Profile>(p => p.AvatarId);

每个个人资料只有一个头像。

查看数据库管理应用程序并没有告诉我(或者至少我没有找到)一对一和一对多关系之间的任何差异。所以我的意思是我找不到任何一对一不同的特殊约束。

数据库如何知道我定义了哪种关系?如果它不知道,为什么我会定义我正在使用的关系类型?

1 个答案:

答案 0 :(得分:3)

如果您在数据库中看不到任何外键或主键,则它不知道。或者更具体地说:您将被允许保存违反关系的数据。

关系的完整性在使用外键的数据库中强制执行,但这肯定不会阻止您提交错误连接表的SQL。

这是一个定义外键的链接,可确保根据表中的数据保证一对一的关系。 http://www.tech-recipes.com/rx/56738/one-to-one-one-to-many-table-relationships-in-sql-server/