Отсутствует или неверный первичный ключ - PullRequest
1 голос
/ 14 мая 2010

Я создаю свои trac enviromnets, используя базу данных sqlite, она работает очень хорошо.

Теперь я хочу получить некоторую информацию непосредственно из базы данных, и я использую C #, чтобы сделать это, используя System.Data.SQLite . У меня проблема в конструкторе, потому что у таблиц нет первичных ключей.

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

Я считаю, что проблема в sqlite_backend.py , но python не моя специальность, и я спешу, так что если вы можете помочь мне быстро исправить.

ОБНОВЛЕНИЕ (более подробно):

System.Data.SQLite

"Поддержка объекта ADO.NET 3.5 Framework поддерживает почти все функциональность структуры лица, которая Sql Server поддерживает и передает 99% тесты в демоверсии EFQuerySamples от MS приложение. "

Visual Studio 2005/2008 Время разработки Поддержка Вы можете добавить SQLite подключение к обозревателю серверов, создавать запросы с запросом дизайнер, перетаскивая таблицы на Типизированный DataSet и многое другое!

Когда я перетаскиваю таблицы в конструктор, некоторые таблицы не попадают в конструктор. Реасос есть,

"Таблица / представление 'main.attachment' делает не определен первичный ключ и нет допустимый первичный ключ может быть выведен. Эта таблица / представление была исключена. к использовать сущность, вам нужно будет просмотрите свою схему, добавьте правильную ключи и раскомментируйте его. "

Проблема в том, что нет сущностей = нет данных.

ОБНОВЛЕНИЕ (подробнее):

Моя цель - не изменить модель данных.

В схема трассировки таблицы вложение , auth_cookie , enum , node_change , разрешение , session , session_attribute , ticket_change , ticket_custom определяются первичными ключами.

Когда я просматриваю файл trac.db (по умолчанию), таблицы не определяются с использованием primary_keys, указанного в схеме.

Я хочу решить эту маленькую функцию trac sqlite db. Я не думаю, что это лучшее решение отредактировать таблицу после создания, чтобы добавить pk, которые не были созданы.

UPDATE

Есть идеи ?!

1 Ответ

0 голосов
/ 15 июля 2010

Возможно, вы захотите взглянуть на API базы данных Trac. Он написан на Python, но вы, вероятно, можете переписать его на C # довольно легко. По крайней мере, это даст вам отправную точку для поиска вашего решения. http://trac.edgewall.org/wiki/TracDev/DatabaseApi

...