ServiceStack Ormlite OnDelete =" CASCADE"不工作

时间:2014-09-17 09:54:34

标签: c# sql-server servicestack ormlite-servicestack

我有以下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,看起来是正确的。什么可能是错的?

1 个答案:

答案 0 :(得分:3)

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

讨论了这些选项here on MSDN;寻找&#34;级联参考完整性&#34;