带有sqlite的servicestack.net ormlite - 阻止create table上的自动主键

时间:2013-03-30 06:03:23

标签: sqlite primary-key create-table ormlite-servicestack

如何阻止ServiceStack.Net OrmLite自动创建主键列?

我的模型如下:

public class Flower2Bee
{
    public int FlowerId { get; set; }
    public int BeeId { get; set; }
}

当我运行db.CreateTable(true,typeof(Flower2Bee))时,它为FlowerId col提供了一个具有唯一约束的主键索引。

由于上述模型旨在促进多对多关系,因此这是一个明显的问题。我也注意到这种情况发生在其他不打算使用主键的表中。

我的偏好是关闭此行为,因为我很乐意在需要时明确定义具有属性的主键。

如果重要的话,我正在使用OrmLite和SqLite。

1 个答案:

答案 0 :(得分:4)

这是ServiceStack.Net OrmLite的已知限制:

https://github.com/ServiceStack/ServiceStack.OrmLite/blob/master/README.md#limitations

所有表必须具有主键才能保持与某些保持技术的兼容性。上述问题的解决方案是向模型添加第三个Id属性,作为每个关系行的主要ID。