在 EF Core 2.2 中使用代码优先时,我遇到了困难。
我有一个名为:AirSensor 的实体,我需要与 TemperatureSensor 建立两个一对一的关系,因为 AirSensor 能够读取温度和露点温度。
因此我的代码在这里:
public class AirSensor
{
public long AirSensorId { get; set; }
public TemperatureSensor TemperatureSensor { get; set; }
public HumiditySensor Humidity { get; set; }
public Enthalpy EnthalpyCalc { get; set; }
public TemperatureSensor DewPointTemperatureSensor { get; set; }
public long TemperatureSensorId { get; set; }
public long HumiditySensorId { get; set; }
public long EnthalpyId { get; set; }
public long DewPointTemperatureSensorId { get; set; }
}
温度实体是:
public class TemperatureSensor
{
public long TemperatureSensorId { get; set; }
public string Name { get; set; }
public float CurrentValue { get; set; }
public DateTime LastUpdated { get; set; }
public ICollection<TemperatureMeasurement> Measurements { get; set; }
}
当我添加迁移时,一切都很好,但是在更新数据库时它失败了:
执行 DbCommand 失败 (17ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
ALTER TABLE [AirSensors] 添加约束 [FK_AirSensors_TemperatureSensors_DewPointSensorId] 外键 ([DewPointSensorId]) 参考 [TemperatureSensors] ([TemperatureSensorId]) ON DELETE CASCADE; System.Data.SqlClient.SqlException (0x80131904): Si especifica la restrictción FOREIGN KEY 'FK_AirSensors_TemperatureSensors_DewPointSensorId' en la tabla 'AirSensors', podrían producirse ciclos o múltiples rutas en cascada。Especifique ON DELETE NO ACTION o UPDATE NO ACTION, o bien modifique otras restrictciones FOREIGN KEY。
但是,我没有看到这里的问题,我只想有两个单独的一对一关系。
我错过了什么?
提前谢谢了!