OrmLite可以为除主键之外的属性指定外键吗
Posted
技术标签:
【中文标题】OrmLite可以为除主键之外的属性指定外键吗【英文标题】:Can OrmLite specify foreign key to an attribute other than the primary key 【发布时间】:2021-11-14 06:36:33 【问题描述】:我有一个表结构,其中 Employee 表中的外键引用了除 Department 表的主键之外的其他内容。这是出于历史原因,所以就是这样。
这有效:q.Join<Department>((e, d) => e.DepartmentId == d.DepNo);
。请注意,部门的主键是Id
。
现在,有什么方法可以指定连接关系(使用列名)?原因是我想使用 AutoQuery 的内置 IJoin<Employee,Department>
东西,但这并不能让我指定要使用的列。
【问题讨论】:
【参考方案1】:请参阅Reference Conventions 上的文档了解如何定义隐式 PK 和 FK 引用。
AutoQuery 仅支持隐式引用,如果您需要更多自定义行为,则需要创建自定义 AutoQuery 实现。
【讨论】:
是的,我在想可能有一些Reference
或 ForeignKey
属性的重载可以明确指定它(外部列名),但似乎这两个总是引用另一个表的主键。这不是什么大问题,因为我有解决方法。以上是关于OrmLite可以为除主键之外的属性指定外键吗的主要内容,如果未能解决你的问题,请参考以下文章