考虑到文档here,您可以在您的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; }
}
如何使用[Reference]
中定义的复合键为PrimaryAddress
类中的Customer
属性正确定义CustomerAddress
?
答案 0 :(得分:1)
您无法使用依赖它的API(但您仍然可以使用SELECT
)
请参阅OrmLite limitations。
我对遗产数据库遇到了同样的问题,我无法修改(因为另一个项目与我同居)。
所以我删除了主键,然后在数据库(PK)上创建了一个新的Id
字段(自动增量),最后在两个字段上创建了一个唯一约束(NOT NULLABLE)。
现在,我可以使用OrmLite进行正确选择,而不会破坏与其他项目的兼容性。