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 实现。

【讨论】:

是的,我在想可能有一些 ReferenceForeignKey 属性的重载可以明确指定它(外部列名),但似乎这两个总是引用另一个表的主键。这不是什么大问题,因为我有解决方法。

以上是关于OrmLite可以为除主键之外的属性指定外键吗的主要内容,如果未能解决你的问题,请参考以下文章

当主键在不同的表中时,可以引用两个外键吗?

3.啥是键、候选键、主键和外键?

可以使用实体框架在另一个表中调用两次作为外键的主键吗?

数据库属性可以是主键还是外键?

我可以在我的大多数表中使用我的外键作为我的主键吗?

SQL中主键和外键的定义是啥???