设置UserAuth删除级联而不向ServiceModel添加依赖项

时间:2018-09-29 14:43:00

标签: servicestack

如果要删除用户,我想确保删除某些实体,因此我将其模型设置为与OrmLite一起使用:

public class UserProcess
{
    [AutoIncrement]
    public int Id { get; set; }
    [ForeignKey(typeof(UserAuth), OnDelete = "CASCADE")]
    public string UserAuthId { get; set; }
    // ... Other properties
}

这可行,但是由于UserAuth包中未定义ServiceStack.Interfaces,因此我需要将ServiceStack nuget包添加到ServiceModel项目中。

我不希望不向类库添加依赖项。有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

您可以在启动时动态添加属性,例如:

typeof(UserProcess)
     .AddAttributes(new ForeignKeyAttribute {...});

或在创建表后手动创建外键,也可以在创建表后使用[PostCreateTable] attribute to execute custom SQL

另一种方法是创建一个没有任何依赖性的单独的DTO,然后使用AutoMapping Utils复制属性。