← Zurück

Простая работа с хранилищем

Хочу все сделки сохранять в базу SQLite (ту что в гидре). Но не могу!

TradingStorage storage = new TradingStorage(new Database("MyRobot", "Data Source=" + dbPath + ";Version=3;") { Provider = new SQLiteDatabaseProvider() });

И пошло:

storage.Securities.Save(sec);

   Вылетает: Знак "#", шестнадцатеричное значение 0x23, не может стоять в начале имени.
2. ```csharp
storage.Orders.Save(o);

Вылетает: Ссылка на объект не указывает на экземпляр объекта. 3. ```csharp storage.MyTrades.Add(trade)

   Вылетает: Instance value for field 'Exchange' is null. Имя параметра: instance

War dieses Thema hilfreich?

Thema teilen

Kommentare (5)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

Mikhail Sukhov
Mikhail Sukhov

Гидра использует 1-ый вариант без проблем. Что там с инструментом, который вызывает ошибку? Варианты 2 и 3 вообще не тестированы.

freelancer
freelancer Autor
_trader.NewSecurities += securities => securities.ForEach(sec =>
{
	storage.Securities.Save(sec);
});

Да просто инструмент...

freelancer
freelancer Autor

А так добавилось:

Security sClone = sec.Clone();
sClone .ExtensionInfo = new Dictionary<object, object>();
storage.Securities.Save(sClone);
Mikhail Sukhov
Mikhail Sukhov

freelancer: А так добавилось:

Security sClone = sec.Clone(); sClone .ExtensionInfo = new Dictionary<object, object>(); storage.Securities.Save(sClone);


Значит что-то в ExtensionInfo недопустимое.
freelancer
freelancer Autor

Вот