servicestack.net ormlite с sqlite - предотвратить автоматический первичный ключ при создании таблицы

Как запретить ServiceStack.Net OrmLite автоматически создавать столбец первичного ключа?

Моя модель выглядит следующим образом:

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

Когда я запускаю db.CreateTable(true, typeof(Flower2Bee)), он дает столбцу FlowerId индекс первичного ключа с уникальным ограничением.

Поскольку приведенная выше модель предназначена для облегчения отношений «многие ко многим», возникает очевидная проблема. Я также заметил, что это происходит с другими таблицами, которые не предназначены для первичных ключей.

Я бы предпочел отключить это поведение, потому что я рад явно определить первичные ключи с атрибутами там, где это необходимо.

Я использую OrmLite с SqLite, если это важно.


person Jordan Morris    schedule 30.03.2013    source источник


Ответы (1)


Это известное ограничение ServiceStack.Net OrmLite:

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

Все таблицы должны иметь первичный ключ для обеспечения совместимости с определенными технологиями сохранения. Решение вышеуказанного вопроса состоит в том, чтобы добавить в модель третье свойство Id, которое будет служить первичным идентификатором каждой строки отношения.

person Jordan Morris    schedule 30.03.2013