当一个poco/表具有复合主键时,如何定义引用
本文关键字:引用 定义 何定义 一个 poco 复合 | 更新日期: 2023-09-27 17:59:12
考虑到这里的文档,您可以在pocos中定义外键关系,如给定的示例:
public class Customer
{
[References(typeof(CustomerAddress))]
public int PrimaryAddressId { get; set; }
[Reference]
public CustomerAddress PrimaryAddress { get; set; }
}
然而,假设我的CustomerAddress
poco类实际上必须这样定义,因为很久很久以前就有人决定这样设计表了。
public class CustomerAddress
{
[PrimaryKey]
public int Id_1 { get; set; }
[PrimaryKey]
public string Id_2 { get; set; }
}
如何使用CustomerAddress
中定义的复合键为Customer
类中的PrimaryAddress
属性正确定义[Reference]
?
您不能使用依赖它的API(但您仍然可以使用SELECT
)请参阅OrmLite限制。
我对一个无法修改的遗留数据库也有同样的问题(因为另一个项目和我的项目共存)。所以我删除了主键,然后在数据库(PK)上创建了一个新的Id
字段(自动增量),最后在两个字段上创建了唯一约束(NOT NULLABLE)。
所以现在,我可以使用OrmLite进行正确的选择,而不会破坏与其他项目的兼容性。