modelBuilder.Entity<Vehicle>()
.HasOne(vehicle => vehicle.Driver)
.WithOne(driver => driver.Vehicle)
.HasForeignKey<Driver>(fk => fk.SSN)
.HasPrincipalKey<Vehicle>(fk => new { fk.ChassisNr, fk.LicensePlate});
字符串
我有一个类Vehicle
,其中chassisnumber
和licenseplate
组合为PK。
还有一个Driver
类,它的主键是SSN
。
现在,当我尝试添加此迁移时,我收到以下消息:
为实体类型“Driver”上的外键“SSN "指定的属性数与实体类型”Vehicle“上的主键”ChassisNr“,”LicensePlate“中的属性数不匹配
我做的事有可能实现吗?
我需要这两个模型之间的0/1到0/1关系。
1条答案
按热度按时间esbemjvw1#
您需要在依赖实体上创建一个与主体实体的主键匹配的外键。要成为主体实体和依赖实体取决于您。对于主体
Driver
和依赖Vehicle
,您可以将SSN
添加到Vehicle
。对于您的问题中的设置,其中Vehicle
是主体实体,您需要将构成Vehicle
的PK的两个属性添加到Driver
,然后在定义FK时创建一个匿名对象:字符串
https://learn.microsoft.com/en-us/ef/core/modeling/relationships/one-to-one