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 Ormlite OnDelete=“;级联”;不起作用

我猜您将此模型置于预先存在的数据库模式之上,并且您没有要求ServiceStack创建表。完全有可能在FOREIGN KEY构造期间通过ON DELETE CASCADE语法(特别是REFERENCES约束)只在创建脚本中执行任何操作。如果是这样,并且如果您在没有此选项的情况下自己创建了表和外键,那么:它将不会有任何效果。

MSDN上讨论了这些选项;查找"级联参考完整性"