ServiceStack Ormlite OnDelete=“;级联”;不起作用
本文关键字:级联 不起作用 Ormlite OnDelete ServiceStack | 更新日期: 2023-09-27 18:22:20
我有以下ORM类:
public class HotelProperties
{
[AutoIncrement, PrimaryKey]
public int Id { get; set; }
[Reference]
public List<HotelRoomInfo> HotelRoomInfo { get; set; }
}
public class HotelRoomInfo
{
[AutoIncrement, PrimaryKey]
public int Id { get; set; }
[ForeignKey(typeof(HotelProperties), OnDelete = "CASCADE")]
public int HotelPropertiesId { get; set; }
}
db.Load()
和db.Save()
方法工作得很好,但是,当我尝试删除HotelProperties
时,我预计HotelRoomInfo
也会被删除。我不知道为什么它不起作用?
我浏览了ForeignKeyAttributeTests.cs,它似乎是正确的。可能出了什么问题?
我猜您将此模型置于预先存在的数据库模式之上,并且您没有要求ServiceStack创建表。完全有可能在FOREIGN KEY
构造期间通过ON DELETE CASCADE
语法(特别是REFERENCES
约束)只在创建脚本中执行任何操作。如果是这样,并且如果您在没有此选项的情况下自己创建了表和外键,那么:它将不会有任何效果。
MSDN上讨论了这些选项;查找"级联参考完整性"