Servicestack参考中的数据注释与ForeignKey

在Termos Java中

好吧,在ServiceStack中
,我可以阅读
[References(typeof(ABC))]和
[ForeignKey(typeof(XYZ)]的优缺点

它们是用来干什么的?(我知道,虽然很天真,但是我很难找到基本描述)

神话

整个ServiceStack.OrmLite项目页面都引用了这两个文档

用于简单的外键

本质上,它们都等效于定义简单的外键,您可以将它们用于:

[References(typeof(ForeignKeyTable1))]
public int SimpleForeignKey { get; set; }

[ForeignKey(typeof(ForeignKeyTable1))]
public int SimpleForeignKey { get; set; }

[References]属性还被其他数据持久性库(例如PocoDynamo for DynamoDb)使用,在希望重用现有数据模型的情况下,属性将是首选属性;在其他模型中,当要包含该属性时,它也可用作不同模型上的良性“标记”属性对属性的关联类型的可导航引用。

细粒度的外键选项

[ForeignKey]特定于OrmLite,包括用于定义外键关系特定于RDBMS的喜欢不同的层叠选项,例如额外的细粒度的选项:

public class TableWithAllCascadeOptions
{
    [AutoIncrement] public int Id { get; set; }

    [ForeignKey(typeof(ForeignKeyTable1))]
    public int SimpleForeignKey { get; set; }

    [ForeignKey(typeof(ForeignKeyTable2), OnDelete = "CASCADE", OnUpdate = "CASCADE")]
    public int? CascadeOnUpdateOrDelete { get; set; }

    [ForeignKey(typeof(ForeignKeyTable3), OnDelete = "NO ACTION")]
    public int? NoActionOnCascade { get; set; }

    [Default(typeof(int), "17")]
    [ForeignKey(typeof(ForeignKeyTable4), OnDelete = "SET DEFAULT")]
    public int SetToDefaultValueOnDelete { get; set; }

    [ForeignKey(typeof(ForeignKeyTable5), OnDelete = "SET NULL")]
    public int? SetToNullOnDelete { get; set; }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章