实体
Person
INT Id
Address Adresss
Address
INT Id
INT PersonId
模型生成器
modelBuilder.Entity<Person>()
.HasOne(p => p.Address)
.WithOne()
.IsRequired(false)
.OnDelete(DeleteBehavior.Cascade)
.HasForeignKey<Adresss>(a => a.PersonId)
.IsRequired();
当我这样做时
Person.Address = null
然后保存更改。我收到这个错误
实体类型“Person”和“Address”之间的关联已被切断,但该关系要么被标记为“必需”,要么由于外键不可为空而被隐式要求。
我认为错误告诉我使PersonId
(外键)可选。所以像下面这样。这将导致 SQL Server 数据库中的外键列可以为空。我想要的是允许用户删除一个地址,但如果添加了一个地址,那么它必须包含一个 PersonId。所以我不希望它为空
Address
INT Id
INT? PersonId
可以让我在地址表中的 personId 不为空,而且还允许人员的地址属性是可选的吗?换句话说,一对一或一对零关系