К какому типу приводятся квиковые типы дата и время? string?
Если идентификатором является два поля, то вместо атрибута Identity
реализую Equitable<X>? Или же можно ничего не реализовывать а отметить
атрибутом оба поля, составляющий ключ?
Это зависит от атрибутов. Посмотрите на
Ecng.Serialization.FieldFactories. Если же мы говорим о примитивных
значениях, типа DateTime, int и double, то должно работать и так.
Сложный ключ поддерживается, но я уже не помню как это делать.
Посмотрю, как это сделать.
Поясню. В примере с CustomPortfolio свойство Client отмечается
атрибутом Identity, кроме этого реализуется
Equitable<CustomPortfolio>, котором явно прописывается что, равенство
объектов, это равенство свойств Client.
Не очень понятно, зачем нужны и атрибут и этот интерфейс одновременно
в примере..
Ведь и атрибут и реализованный интерфейс по-отдельности говорят что
есть равенство.
Понял. Сделано по причине того, что Identity - это атрибут
Ecng.Serialization, а Equitable - это для работы .NET. Да и задачи
разные. Первое - это определение первичного ключа. Второе - это
сравнение объектов на равенство. Тоесть, объекты могут быть равными по
состоянию, но при этом разные по логике. Например, для объекта Quote
могут иметь одинаковую цену и объем, но один появился вначале сессии,
а второе - в конце. Объеты сами по себе разные, но при этом равны.
评论 (11)
登录 或 创建账户, 登录或注册以发表评论
Данные исторические? Формируете портфель, создаете таблицу, экспортируете по ДДЕ, обрабатываете как показано
http://stocksharp.com/doc/help/html/7d73f7bf-ae8b-4d76-9895-cffb6342203f.htm
Ясно, спасибо!
Кстати:
Спасибо, буду ждать..
Попробуйте сделать так:
public class MyKey { public string Property1; public string Property2;
public class MyEntity { [Identity] [InnerSchema] public MyKey Key;
При использовании этих атрибутов реализация интерфейса Equitable<X> не нужна? Способы взаимо заменяемы, но в первую очередь смотрите на атрибуты?
Нужно. Потому как одентификация будет идти по объекту MyKey. Насчет взаимозаменяемости не понял.
Поясню. В примере с CustomPortfolio свойство Client отмечается атрибутом Identity, кроме этого реализуется Equitable<CustomPortfolio>, котором явно прописывается что, равенство объектов, это равенство свойств Client.
Не очень понятно, зачем нужны и атрибут и этот интерфейс одновременно в примере..
Ведь и атрибут и реализованный интерфейс по-отдельности говорят что есть равенство.
Понял. Сделано по причине того, что Identity - это атрибут Ecng.Serialization, а Equitable - это для работы .NET. Да и задачи разные. Первое - это определение первичного ключа. Второе - это сравнение объектов на равенство. Тоесть, объекты могут быть равными по состоянию, но при этом разные по логике. Например, для объекта Quote могут иметь одинаковую цену и объем, но один появился вначале сессии, а второе - в конце. Объеты сами по себе разные, но при этом равны.
т.е. для того, чтобы Stock# не плодил лишние объекты, все, что нужно,
Да, QuikTrader смотри на этот атрибут, а не на Equitable.