servicestack - Servicestack References 与 ForeignKey 中的数据注释
问题描述
好吧,在 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; }
}
推荐阅读
- amazon-web-services - ALB -> HAPROXY Websocket 连接不工作
- javascript - 未捕获的 ReferenceError:使用示例文档在 ElectronJS 中未定义要求
- python - 嵌套列表 - 更改嵌套列表的结构(嵌套减少)
- amazon-web-services - 发送 SMS 消息到死信队列,同时使用 boto3 通过 lambda 直接发送到电话号码,以防 sns 失败
- javascript - 如何在变量为假时连续添加点并显示它(js)
- django - 没有“Access-Control-Allow-Origin”错误 - font-awesome
- oop - 左值需要作为赋值的左操作数 - 尝试运行 oops 代码
- python - 当我使用 model.predict() 解决多类问题时,内核死了
- iframe - 当 iframe 是跨域并创建运行时时,如何在 chrome 扩展中访问 iframe?
- python - 解释 Hausman 测试结果 Python(线性模型)